DDD、パターン、およびアプリケーション アーキテクチャの他の多くのトピックについて読んだときに、何ヶ月もかき回されてきた疑問が頭に浮かびました。これを MVC Web アプリケーションの観点から組み立てますが、問題はもっと広い範囲にあると確信しています。それは次のとおりです。ドメイン エンティティへの固執は、アプリケーションに硬直性と非効率性をもたらしますか?
DDD アプローチは、アプリケーションのビジネス ロジックを管理し、利害関係者と連携する方法として完全に理にかなっています。しかし、私にとっては、多層アプリケーションのコンテキストではうまくいきません。つまり、ビューがエンティティのすべてのデータを必要とする場合、または 2 つのリポジトリでさえすべてを持っている場合のシナリオはほとんどありません。それ自体は悪いことではありませんが、複数のクエリを作成して一連のプロパティを返すことを意味します。そして、それが完了すると、余分な情報がビューに渡されるか、データを破棄、マージ、および DTO またはビュー モデルにマッピングするオーバーヘッドが発生します。多くのレポートを生成する必要があり、そこで問題が拡大しているようです。それぞれが独自の情報のスライスまたは集約を必要とし、SQL ではうまく機能しますが、リポジトリではうまくいきません。完全なエンティティを返すことが期待されます。正直なところ、これは無駄に思えます。原則として、データベースをパウンディングして不要なネットワーク トラフィックを生成したくはありません。このような質問から リポジトリ層はデータ転送オブジェクト (DTO) を返す必要がありますか? この質問に苦労しているのは私だけではないようです。では、それが課すと思われる制限に対する答えは何ですか?
新しい混乱した DDD-er からの感謝。