Please enable JavaScript.
Coggle requires JavaScript to display documents.
CQRS - Coggle Diagram
CQRS
クエリサービスのDTOをviewにそのまま反映させない
このDTOはユースケースからの返り値であり、プレゼンテーション層の返り値とはなりえない
クライアントにおおじて、viewModelとかに変換するべき
ドメインモデルviewにかえして、それで問題ないならそのまま返してもOK
参照系と更新系のモデルを分割する
更新系
これはドメインモデルで良い
参照系
ユースケースにあった型を定義する
ユーザ一覧型みたいな
DTOとかで
モデルだけではなく、取得系のサービスも定義すると良い
UserQueryService
クエリサービスを定義する層
クエリサービスのインタフェースをユースケース層
実装クラスはインフラ層
クエリサービス戻り値DTOをユースケース層
なぜユースケース層か?
これは何を成し遂げたい型なのかを想像すればわかりやすい
こういうユースケースで返してほしいものはこれ!と定義する感じ
ドメインそうじゃないのは、ドメイン知識を有していないから
ドメイン知識とはルールと成約
ユースケース層に属する
CQRSは部分導入も可能
DB、トランザクション都合でドメインモデルをカエルことはしない
パフォーマンスの改善のためにドメインモデル変えるなら素直にCQRS使おう