Automapperというライブラリを見ていました。これにはいくつかの懸念があります。
データモデルを公開したくありません (GOOD)。データモデルが DB によく似ている必要があるのはなぜですか?
エンティティの代わりに軽量 DTO を使用します。(良い)
ここで、エンティティをこれらの DTO にマップする必要があります。DRYの原則を尊重していますか??
Automapperというライブラリを見ていました。これにはいくつかの懸念があります。
データモデルを公開したくありません (GOOD)。データモデルが DB によく似ている必要があるのはなぜですか?
エンティティの代わりに軽量 DTO を使用します。(良い)
ここで、エンティティをこれらの DTO にマップする必要があります。DRYの原則を尊重していますか??
DTO が DRY に違反していると主張する人もいるかもしれませんが、それがあなたの状況にとって理にかなっていれば、私はそれについてよく考えません。
DRY は、ほとんどのプログラミングのベスト プラクティスと同様に、特効薬ではありません。妥協しなければならないこともあります。この場合、DRY に違反することは、ドメインの詳細を必要としない呼び出し元に漏えいすることで発生する可能性のある問題 (N+1 遅延読み込みのパフォーマンスの問題など) を防ぐために、完全に許容できると主張します。
アプリケーションによって異なります。トランザクションアプリケーション、およびビジネスロジックの要件によっては、データモデルを上位層のコードに公開することは、特定の規模のプロジェクトにとって意味があります。アプリケーションが大きくなるほどDRYが重要になると思いますが、この質問をしているコンテキストがよくわかりません。