ドメイン駆動設計(DDD)を研究する際に、サブドメインの概念に出くわしましたが、まだ理解していないと思います。これについて私の最初の理解は、サブドメインがアプリケーションのドメインのサブセットであるということでした。言い換えれば、それは問題空間のパーティションです。サブドメインには3つのタイプがあると読みました。
- コアサブドメイン
- サポートするサブドメイン
- 汎用サブドメイン。
私の理解はこのようなものでした。アプリケーションのドメインを選択しましたが、それは非常に複雑です。次に、それを見て、それをより単純な部分に分割する方法を見つけます。その一部はコアサブドメインであり、一部はサポートするものであり、その他は一般的なものです。
詳細情報を検索したところ、別のことを言っている人が見つかりました。コアサブドメインが1つだけ存在し、いくつかの汎用サブドメインがあり、サポートサブドメインがまったくないことです。
だから私の質問は:
- 本当にサブドメインとは何ですか?私の最初の理解は正しいものですか、それとも私が読んだ2番目のものですか?
- このサブドメインの考え方はどのように役立ちますか?
- サブドメインを識別するための良い基準は何ですか?このアイデアをより有効に活用するためにサブドメインを決定するとき、何を念頭に置く必要がありますか?
編集:もう少し検索すると、次のことがわかりました:
eコマースシステムについて考えてみましょう。最初は、それがショッピングコンテキストのアプリケーションであることがわかります。さらに詳しく見ると、在庫、配送、アカウントなど、他のコンテキストもあることがわかります。
これは、私が最初にサブドメインだと思ったものです。ドメイン(ショッピングドメイン)を選択し、それをより単純なサブドメイン(在庫、配送、アカウントなど)に分割します。しかし、問題のテキストでは、彼らはこれらを文脈と呼んでいます。私の以前の理解はサブドメインではなくコンテキストですか?
このサイトで、サブドメインと制限付きコンテキストの違いについて1つの質問を見つけました。答えは、サブドメインは問題空間のパーティションであり、コンテキストは解空間のパーティションであると述べています。ただし、ショッピングコンテキストを在庫、配送、アカウントなどに分離することは、概念的な区分ではありません。つまり、解空間ではなく問題空間にありますか?