それで、私のチームの開発者の1人からこの質問を受けました:ドメイン駆動設計とは何ですか?もちろん、エヴァンスの本を指すこともできますが、それは実際に答えですか?
チームのジュニアソフトウェアエンジニアに、DDDを数文でどのように説明しますか?
それで、私のチームの開発者の1人からこの質問を受けました:ドメイン駆動設計とは何ですか?もちろん、エヴァンスの本を指すこともできますが、それは実際に答えですか?
チームのジュニアソフトウェアエンジニアに、DDDを数文でどのように説明しますか?
この実践は、「解決空間」ではなく「問題空間」にあなたの努力を集中させることを促進すると思います。ドメインを研究し、実際に理解して理解することにより、緊急のソリューション(設計)を推進します。(XPから取得した)プラクティスの1つは、問題のドメインで発生するストーリーの作成です。これらから、設計のユースケースとオブジェクトを特定できます。それらは「出現」し、ソリューションに何が必要であり、どのように相互作用する必要があるかを示します。
「ドメイン」を発見する過程で、開発者とプロジェクトの他のすべての利害関係者の両方が理解できる共通の言語を形成します。
ドメインモデルとその「用語」は、完成品のソースコードで非常によくわかります。それは少なくとも私の経験です
あなたが書いているソフトウェアが何であるかを理解しようとし、その理解をモデルに反映させます。
DDDの重要な部分は、いわゆるユビキタス言語です。つまり、ビジネスの専門家と同じ言語を話します。そして、インピーダンスの問題を回避するために、この言語を反映するようにコード/アーキテクチャを作成します。
ドメイン駆動設計とは、アプリケーションの複雑さを最も簡単に抽出できるドメイン モデルで管理することです。
数文で説明するのは非常に難しいですが、InfoQの本を良い入門書としてお勧めします。また、多くの人が Evans の DDD の本を使ってブック クラブを開催していると聞いたことがあります。
私にとって、次のレベルの OOD/OOP は、カプセル化が問題空間に関するすべてであり、ユーザーが説明および理解するものであり、技術的な実装に関するものではありません。