質問

そこで、私のチームの開発者の一人から次のような質問を受けました。ドメイン駆動設計とは何ですか?もちろんエヴァンスの本を挙げることもできますが、それは本当に答えなのでしょうか?

チーム内の若手ソフトウェア エンジニアに DDD を数文でどのように説明しますか?

役に立ちましたか?

解決

この実践は、「解決空間」ではなく「問題空間」に努力を集中することを促進すると思います。ドメインを研究し、実際に知り、理解することで、新たなソリューション (設計) を推進します。(XP から引用した) 実践の 1 つは、問題領域で発生するストーリーを書くことです。これらから、設計のユースケースとオブジェクトを特定できます。それらは「出現」し、ソリューションに何が必要か、そしてそれらがどのように相互作用する必要があるかを示します。

他のヒント

InfoQ には無料の eBook があります。

ドメイン駆動設計を迅速に実行

豊富な例が載っていて読みやすいです。

「ドメイン」を発見する過程で、開発者とプロジェクトの他のすべての関係者の両方が理解できる共通言語を形成します。

ドメイン モデルとその「専門用語」は、完成品のソース コードではっきりと確認できます。それは少なくとも私の経験です

DDD の重要な部分は、いわゆるユビキタス言語です。つまりビジネスの専門家と同じ言語を話します。そして、インピーダンスの問題を避けるために、この言語を反映するようにコード/アーキテクチャを作成してください。

あなたが書いているソフトウェアが何についてのものであるかを理解しようとし、その理解をモデルに反映させます。

ドメイン駆動設計は、アプリケーションの複雑さを最も簡単に抽出できるドメイン モデルで管理することです。

一言で説明するのは非常に難しいのですが、オススメしたいのは、 InfoQ 良い入門書としてこの本を読んでください。また、多くの人がエヴァンスの DDD 本を読んで読書クラブを開催しており、それがこの本を理解するのに大いに役立っていると聞いています。

私にとって、OOD/OOP の次のレベルは、カプセル化が、技術的な実装ではなく、ユーザーが説明および理解する問題空間に関するものです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top