0LINEはじめにドメイン駆動設計でモデリング〜設計〜サンプルプログラム・テストコード作成までを一通りやってみての気づきや重要ポイントをまとめました。今回はCQRSにフォーカスしてまとめています。自分の理解をまとめた記事です。(その点お含みおきください)CQRSとは??使い所やメリットデメリットは??CQRSは参照と更新でモデルを分割するアーキテクチャです。複数集約にまたがる参照を行う際、DDDではこれらの問題があります。以下の記事にまとめているので必要であればご覧ください。複数集約にまたがる条件でのページングができたりします。ドメイン駆動設計でCQRSのサンプルコードとテストコードCQRSを利用したサンプルコードを作成したので紹介します。今回の題材は、ユーザを指定してユーザ情報とそのユーザの支払い情報リストをセットで取得という想定でCQRSを導入しました。以下の記事にまとめているので必要であればご覧ください。ドメイン駆動設計のモデリング練習|データベーススペシャリストの過去問を題材にCQRSのクエリサービスのサンプルコードユースケース層にインタフェースを作成しました。>>該当ソース(github)インフラ層に具体的なDB操作を実装しました。>>該当ソース(github)参照用モデルは1ユースケースに特化するのが基本で、ドメイン知識を持たないのでドメイン層ではなくユースケース層に書き、DBの具体的な操作に関しては、リポジトリと同じくインフラ層に書きます。CQRSのクエリサービスのテストコードインフラ層のテストコードを書きました。性能が全てのようなシステムの場合は導入すべきではないな。感じていたのですが、ドメイン駆動設計でもCQRSを利用して性能で問題が発生しても対応できる。いうことが分かり、ドメイン駆動設計導入のハードルが自分の中で下がりました。一方で、なんでもかんでも参照系のユースケース用に参照モデルを作りまくったり、(部分的に必要に応じで導入すればよい)参照系の複数のユースケース間で無理やり参照モデルを使いまわそうと最小公倍数的な何でも入るモデルを作るはやめましょう。必要な箇所のみ最低限で作る。いう使い方をすべきだと思いました。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。