タグ

DDDとCQRSに関するarx0balestのブックマーク (2)

  • 松岡@ログラス/DDD,アジャイルの質問箱です

    DDD関係なくても大丈夫ですよ!案1としては、1つのユースケースクラスからある程度責務を独立させられそうなオブジェクトを切り出します。 例えば、データAを取得する処理はDataAFetcher、変換する処理はDataAConverter…という風に(fetcherのネーミングは微妙な気もしますが一旦例として…) これはprivateメソッドで切り出すことは多いと思いますが、それをすると1クラスが多数のprivateメソッドで膨らんでしまいます。 そうではなくデータAを取得するという責務を持ったクラスして切り出してしまうことで、クラスの凝集度が上がり保守性が高まります。 特にテストはやりやすくなり、それらの独立したクラスそれぞれで単体テストを行い、ユースケースクラスはそれらを組み合わせる観点のテストだけ書けばよくなります。(余談ですが)テストのしやすさを追求することは、良い設計を追求すること

    松岡@ログラス/DDD,アジャイルの質問箱です
  • DDDで設計するならCQRSの利用を検討すべき - Qiita

    タイトルに書かれていることで全てなのですが、DDDとCQRSの併用について強調している日語の情報が少ないので、軽くまとめておきます。 CQRS+DDD CQRS(コマンドクエリ責務分離)とは、サーバの機能を「コマンド」(副作用あり)と「クエリ」(副作用なし)で完全に分けちゃおう、という考え方です。そもそも「コマンド」と「クエリ」ではあらゆる要件が異なります。 一貫性: 「コマンド」は整合性のある処理が必要、「クエリ」はあまり気にする必要なし ストレージ: 「コマンド」側は正規化してデータを保存したい、「クエリ」側は非正規な方が効率的 スケーラビリティ: 「コマンド」は全体の負荷の中で占める割合が少ない、「クエリ」は負荷が大きい なので分けちゃうわけですが、 コマンド側 複雑なビジネスロジックが絡むので、ドメイン駆動が活躍 クエリ側 複雑なビジネスロジックがないので、ドメイン層はスキップ

    DDDで設計するならCQRSの利用を検討すべき - Qiita
  • 1