Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

値オブジェクトのCQRS対応 #1

Open
nftug opened this issue Jul 2, 2023 · 0 comments
Open

値オブジェクトのCQRS対応 #1

nftug opened this issue Jul 2, 2023 · 0 comments

Comments

@nftug
Copy link
Owner

nftug commented Jul 2, 2023

値オブジェクトの扱いでちょっと悩んでいる。例として BookPage を取り上げる。

TL;DR

  • データを永続化する際は値の検証を挟むが、単に取得されたデータから作成するときは挟まないでほしい。
  • CQRSっぽく安全性を確保するなら、コマンド用とクエリ用でそれぞれ別に値オブジェクトを作成すべきではないか?

Background

  • もし変なデータがDBに入ってしまったら、アプリから該当のデータを取得しようとすると例外で止まってしまう。
  • コンストラクタにskipValidationというbool値を入れて検証の有無を切り替えているが、コードが複雑になってしまう。

Solution

  • CQRSの原則に則って、バリデーションを挟まないQuery専用の値オブジェクト BookPageForQuery を新たに作成すべき?
  • 検証が必要な際は、この値オブジェクトを継承して別クラスとして BookPageForCommand を作成すべきだろう。
@nftug nftug changed the title 値オブジェクト 値オブジェクトのCQRS化 Jul 2, 2023
@nftug nftug changed the title 値オブジェクトのCQRS化 値オブジェクトのCQRS対応 Jul 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant