回答:
まず、それが必要であることを知らない場合は、それを必要としない可能性があります。DDDが解決する問題を認識しない場合は、おそらくそれらの問題はありません。DDDの支持者でさえ、DDDは大規模な(> 6か月)プロジェクトのみを対象としていることを頻繁に指摘します。
この時点でまだ読んでいると仮定すると、DDDに対する私の見解は次のとおりです。
DDDは、ソフトウェアを実際のシステムまたはプロセスのモデルにしようとするものです。DDDを使用する場合、ドメインの専門家と緊密に連携することを目的としています、実際のシステムがどのように機能するかを説明できる。たとえば、競馬への賭けを処理するシステムを開発している場合、ドメインの専門家は経験豊富なブックメーカーである可能性があります。
自分とドメインエキスパートの間で、ユビキタス言語(UL)を構築します。ULは基本的にシステムの概念的な説明です。ドメインの専門家が読み取って正しいことを確認できるように、システムの動作を書き留めることができるはずです。私たちの賭けの例では、ユビキタス言語には「人種」、「賭け」、「オッズ」などの単語の定義が含まれます。
ULによって記述された概念は、オブジェクト指向設計の基礎を形成します。DDDは、オブジェクトの相互作用方法に関する明確なガイダンスを提供し、オブジェクトを次のカテゴリに分類するのに役立ちます。
DDDは、いくつかのパターンも推奨しています。
さて、この時点で私は、これらのことをこれまで聞いたことがない場合は、期限のあるプロジェクトでDDDを使用するべきではないと言っておかなければなりません。DDDを試す前に、設計パターンとエンタープライズ設計パターンに精通している必要があります。これらを知っていると、DDDが非常にわかりやすくなります。そして、前述のように、InfoQから入手できるDDDの無料の紹介があります(DDDについての講演もあります)。
例としてStackOverflowを取り上げます。いくつかのWebフォームの設計を開始する代わりに、まず、ユーザー、質問、回答、投票、コメントなど、問題ドメイン内のエンティティのオブジェクト指向モデリングを行うことに集中します。設計は問題の詳細に基づいているため、ドメインはドメイン駆動設計と呼ばれます。
エリック・エバンスの本でもっと読むことができます。