2017-09-15 5 views
1

私のモデルのドメイン、サブドメイン、および限定されたコンテキストを定義するための適切な細分性を見つけることに問題があります。ドメインドリブンデザイン:ビジネスのドメインとサブドメインを定義する

ツールメーカのドメインでは、コアドメインは「生産」、サブドメイン「Sales」、「Finance」、 「スペアパーツ」および「ディーラー管理」とすることができます。ディーラー管理システムは、サブドメイン "ディーラー管理"内の限定されたコンテキストになる可能性があります

しかし、プロジェクトでは、ディーラー管理システムを開発する "ディーラー管理"はビジネスドメインとして定義されています。 ここでのコアドメインは、 "小売業者ネットワーク"、サブドメイン: "契約管理"、 "活動"、 "小売業者のケア"です。 コアドメイン「小売業者ネットワーク」内の限定されたコンテキストは、「ディーラーサイト」および「地理」です。

私の例では、ビジネス全体のサブドメイン(小売業者管理)もドメインとして定義され、サブドメインに分かれています。

これは正しく、ドメインを定義することは遠近法の問題ですか、私は概念に間違いがありますか?

+0

私はあなたが正しいと思います。ただし、あなたの境界にあるコンテキストを過度に分離しないようにしてください。マイクロサービスアーキテクチャにも欠陥があります。 – plalx

+0

コンテキスト境界を見つけることは、DDDでは最も重要ではありません。広範な知識を必要とし、ドメインの専門家と一緒に作業し、ニーズを特定し、その言語の言語と文脈を見つける必要があります。 100単語の質問に基づいて、あなたに「正しい」または「間違って」答えることは不可能*です。さらに、それは無責任なものになるでしょう。 –

答えて

2

コメンター@AlexeyZimarevは、ドメインの定義と境界が正しいかどうか、正しく指摘したようにビジネスを理解することに完全に依存。私たちはここで実際にはできません。

しかし、私は少なくともという限定されたコンテキスト(==マイクロサービス)を作成するのに役立つ技術的な松葉杖を提供したいと思います。これは、次のとおりです。

有界コンテキストは、ビジネスロジックを実行するために、他のコンテキストとの同期通信を要求してはなりません。

そして、私は技術だけで同期を意味するものではありません。コンテキスト間に非同期メッセージングシステムが存在するが、コンテキストが応答を待たなければならない場合、それは依然として同期的です。他のすべてのコンテキストが削除された場合

A有界コンテキストがまだ動作するはずです(サービスが停止しています)。

は、私はその後、ドメインにそれらをグループ化するなど、支援するものでありコアドメイン、技術的な作業ではありませんかを決める、これは難しい部分だと思います。

注:あなたのケースを知らないと、「ディーラーの管理」と「契約管理」は通常、限定されたコンテキストのが悪いの候補です。他のコンテキストが「契約」または「ディーラー」で動作する必要がある場合、通常は同期通信になります。彼らは契約を「取得」し、それを使って何かをする必要があります。これは、コンテキストが本当に限定されていないことを意味します。

関連する問題