2024年02月08日

質問者さん

ドメインモデル貧血症について質問したいです。 バリデーション以外のビジネスロジックが無いマスタデータのようなものをエンティティ化するのはドメインモデル貧血症でしょうか。 例えば、他の集約からID参照される「部署」のようなエンティティを作りました。 プロパティはid, nameのみで、 ドメイン知識としては名前の文字数チェックと名前の変更があります。 上記のようなgetter、setterしか持たないエンティティはドメインモデル貧血症にあたるのでしょうか? また、このようなエンティティが存在するのは設計が悪いのでしょうか?

2024年02月15日

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

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

ドメインモデル貧血症は、「getter/setterしかない」ではなく、「そこに書くべきドメイン知識がクラス外にかかれている」と捉えましょう。 文字数がドメイン知識であればバリデーションもそこに書く必要があります。部署クラス、もしくは部署名クラスに実装しましょう。そうでなければ、ユースケースごとに文字数が異なる(たとえば、新規作成時とこうしんじで異なる)ようなことが発生する可能性が生まれてしまいます。 本当にそこに書くべきドメイン知識が他にないのか?という観点も考えて見るためには、具体的な値を記載してモデリングして見るといいでしょう。モデリングのやり方はこちらの動画、本を見てみてください! https://www.youtube.com/live/HgtCKlOzRiQ?si=2BTklVOQkOYgGPCY https://little-hands.booth.pm/items/3363104

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

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

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

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

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

最近答えた質問

04月08日

「あの人(CTOやテックリードなど)がApproveしているから大丈夫だろう」とロクに見ずにApproveしているメンバーがいる気がしています。どのようにして自分でレビューしてもらうようにすればいいでしょう?

04月08日

技術的負債を生み出す人と返済する人が違うという組織はありだと思いますか?納期優先でザクッと作る人と、それを後追いでキレイにする人、のように・・・

04月08日

続き質問

ご返信ありがとうございます。 差分というのは、一意なIDがあったとしてそれに紐づくデータ群の差です。具体的には、あるデータを新規登録したとして、その後どこかのタイミングで そのデータを編集した場合、そのデータをUPDATEしないといけません。その時全てUPDATEするのではなくて、差分のみUPDATEしたいです。加えて 変更前後のログも取得したいと考えています。 今集約という形でプロパティに一意のIDやその他必要なエンティティを複数もっています。エンティティの中にはリスト(コレクション?)のようになっているエンティティもあります。 この変更前後(新規登録時と編集時)の差分を集約のドメインサービスで取得するかリポジトリで取得するのか、または別のところで取得するのか教えて欲しいです。 よろしくお願いします!