10月12日

質問者さん

境界付けられたコンテキストで分けられた同一の概念をどうモデルで関連付けるのがよいのかという質問です サークルを管理するようなシステムの場合、氏名などのプロフィールを示すユーザー情報の概念と、サークルに参加しているメンバーを示すユーザーの概念をどのようにドメインとして関連付けるべきでしょうか? - GUIDなどのシステム間で一意の同じ値をプロフィールIDやメンバーIDとして、プロフィールとメンバーにそれぞれ持たせる?(それぞれ分けるが同じGUIDの値としている状態) - プロフィールIDと同じ値を持つメンバーIDをメンバーに持たせる?(それぞれ分けるがメンバーIDはプロフィールIDと同じ値とする状態) - メンバーにメンバーIDとプロフィールIDの両方を持たせる?(サークルシステム側にもプロフィールIDを定義して持たせる状態) モデリングのイメージは以下のようになります https://www.plantuml.com/plantuml/svg/ZL9FIm915B_FfnZs62XqzUIXIn_3SZF356mxXR0p4wAqqYQ9be6LjHIY1cLH2NsOrwnuwYlqPhJQGG_1ycPuRtz_tfkNt7DIHMT_DqT8qTvqKlbCpgOMY2Q8FeW6y2w8COWUy4SG-9M1zu6_WgXOz81GMjZOGHXT1EWgfTcqFiA7O-dNy5eY9M9AyP42yE5_HAvqsKT0b1uPgLcqLYqQY-bZYRC4bTTYql0-trl0Je1NWNl0EelgmD0InYwmG5RAqP-bZx45hWSYqFwVLNHhm0PXmEN7I7dA5noR5hEPROSMjWo7YOHs7aqXSdqDWnnqfkTjTN5lW0s1tGD3wJFWHvW4vcbBXr_Z3XB4blIdMEvc_ZH5RmR-1HW3Vz6Tba5SolPRU56Tw_9wr9fc1DR4CO3BPELswfukrUNrq6Dgb0mR22PF_i-8v-fsFgrcGaZaKIDsp9s9LdwMXvZfluUEnrSiOvngpvAefrRx6m00

10月14日

松岡@ログラス/DDD,アジャイル

松岡@ログラス/DDD,アジャイルさん

プロフィールのIDをメンバーのIDとする、で良いと思います。エンティティの条件は識別子(≒ID)によりその一位性判断するというものですが、それを他のオブジェクトと共有してはいけないということは特に定義されておらず、定義としても問題はありません。

松岡@ログラス/DDD,アジャイルさんに 質問してみましょう!

松岡@ログラス/DDD,アジャイル

松岡@ログラス/DDD,アジャイル

DDDや設計にお困りの方はDMにてご相談ください。講義、モブモデリングやコーディングなどご要望に合わせた進め方でサポートします(オンライン)。 YouTube: https://www.youtube.com/channel/UCbHtbIUxtfGjrDy1WcqxExw

松岡@ログラス/DDD,アジャイルさんが

最近答えた質問

12月12日

2つのドメインオブジェクトをまたがるロジックがあった時にドメインサービスを利用するというのが慣例かと思いますが、どちらか片方のドメインオブジェクトにメソッドを作成し、引数でもう片方のオブジェクトを受け取るというのは今後の機能性や保守性を高めずらくなってしまいますでしょうか?ご確認よろしくお願いいたします。

12月12日

イベントストーミングによるモデリングを実装に反映する際に、コマンドやポリシーなどもドメインとして実装するべきでしょうか? システム外部で発生したイベントは、プレゼンテーション層が購読してアプリケーション層へ処理を依頼するという認識なのですが、システム内部で発生したイベントをどのような流れで処理をさせるかに迷っています。 システム内のイベントの処理の場合、アプリケーション層でイベントパブリッシャーにイベントを発行した後、イベントサブスクライバーを実装したポリシーがキャッチし、コマンドを実行するという流れを考えているのですが、この時にコマンドやポリシーもドメイン層にあったほうがドメインの関心ごととして適切なのではないか、と考えています。 このような認識でも問題なさそうか、またそもそも認識違いをしているかについてご教授いただけると助かります。

12月12日

親子のテーブル関係をそのままドメインモデル化したときに、子テーブルのモデルは親テーブルにインスタンスで管理されています。子テーブルは識別子を持たなくても不都合がありません。さらに、イミュータブルクラスとして設計しています。この場合、子テーブルのモデルはまるっと、値オブジェクトとなりえますが、そのような設計は、「おすすめ」といった観点でいかがでしょうか?