ドメインドリブンデザインについて学習していますが、いくつかの実用的な問題があり、いくつかの優れたサンプルを確認すると混乱する場合があります。
基本的なDDD概念のモデリングに優れた機能を果たすいくつかの優れたコードサンプルを知っている人はいますか?
特に興味がある
- 例示的なドメインモデル
- リポジトリ
- ドメイン/アプリケーションサービスの使用
- 値オブジェクト
- 集合根
ドメインドリブンデザインについて学習していますが、いくつかの実用的な問題があり、いくつかの優れたサンプルを確認すると混乱する場合があります。
基本的なDDD概念のモデリングに優れた機能を果たすいくつかの優れたコードサンプルを知っている人はいますか?
特に興味がある
回答:
DDDサンプルの難しさは、多くの場合、それらが非常にドメイン固有であり、結果として得られるシステムの技術的な実装が、ドメインのモデリングで行われた設計の決定と遷移を常に示すとは限らないことです。これは、実際にはDDDのコアです。DDDは、コードよりもプロセスの方がはるかに重要です。(一部の人が言うように、最高のDDDサンプルは本そのものです!)
とはいえ、十分にコメントされたサンプルアプリは、少なくともこれらの決定のいくつかを明らかにし、ドメインモデルとそれを実装するために使用される技術パターンとのマッチングに関していくつかの方向性を与えるはずです。
使用している言語を指定していませんが、いくつかの異なる言語でいくつかご紹介します。
DDDSample -Eric Evansが彼の本で話している例を反映するJavaサンプル。これはよくコメントされており、別々の境界のあるコンテキスト(つまり、プレゼンテーション層)でさまざまな問題を解決するさまざまな方法を示しています。積極的に取り組んでいるため、定期的に更新を確認してください。
dddps -Tim McCarthyの著書、.NETドメイン駆動設計とC#のサンプルC#アプリ
S#arpアーキテクチャ -実際のドメイン問題がないためにDDDアプローチが「純粋」であるとは言えない実際的なC#の例ですが、それでも素晴らしいクリーンなアプローチです。
これらすべてのサンプルアプリでは、定期的に更新する必要があるので、SVN /その他の最新のトランクバージョンをチェックして、思考とテクノロジーのパターンについて本当に理解するのがおそらく最善です。
dddps
完全に貧弱で、実際にはOOPに対抗しているようです。ドメインオブジェクトには動作がなく、サービスレイヤークラスは基本的にリポジトリに対する1:1の委任です。これをDDDの「良い」例と考える必要があるかどうかわかりません。私はまだ自分で学習していますが、S#arpアーキテクチャのサンプルは、状態と動作の両方を包含するDDDを学習する人にとってより良い例のようです。これは優れたOOP設計です。
言うまでもなくソースプロジェクトではありませんが、DDDを非常によくカバーするいくつかの優れたビデオがあるFlashが必要です。
これらは、現在利用可能なほとんど存在しないDDDの例よりもはるかに役立つことがわかりました。
Project Silkをチェックしてください。DDDだけでなく、他の最先端のパターンも示しています。これは、どのWeb開発者にとっても優れたリソースです。プロジェクトの完全な概要は、MSDNにあります。
これは、ドメイン主導の設計に基づく良い例であり、ドメインレイヤーを分離することが重要である理由を説明しています。
マイクロソフトスペイン-DDD Nレイヤーアーキテクチャ
ddd-cqrs-sampleも優れたリソースです。Java、Spring、JPAで書かれています。
更新されたリンク:https : //github.com/BottegaIT/ddd-leaven-v2
コードのキャンプサーバー、ジェフリー・パレルモの書籍のサンプルコードアクションでASP.NET MVC。本はプレゼンテーション層に焦点を当てていますが、アプリケーションはDDDを使用してモデル化されています。