All Articles

ddd part.2

ドメインモデリングの方法

なぜやるか

コードを書く開発前に考慮漏れがないようにする

どうやるか

実装するソフトウェアの対象領域に詳しい人間を呼んでアウトプットのイメージをすり合わせる
開発者の足りない知識を埋め合わせる

ドメインモデル図

簡易なクラス図程度のものでよい

  • オブジェクトの代表的なフィールドを書く
  • オブジェクト動詞の has-a 関係、参照関係を表現する
  • ルール/制約を吹き出しに書き出す
  • 集約の範囲を定義する

今回の対象

面接管理システム

モデル図

G 応募 応募 id 選考 選考 id 応募->選考 面談 面談 id 応募->面談 選考結果 選考結果 id 選考->選考結果 選考担当 選考担当 id 選考->選考担当 面談担当 面談担当 id 面談->面談担当 候補者 候補者 id 候補者->応募 合格者 合格者 id 候補者->合格者 落選者 落選者 id 候補者->落選者 管理者 管理者 id 採用担当者 採用担当者 id 採用担当者->選考担当 採用担当者->面談担当

想定イベント

  • 面接を登録する
  • 選考を登録する
  • 選考結果を登録する

モデルを定義していくと、本で見ているように採用管理システムに近くなった。
イミュータブルモデルを意識してモデリングしたので基本的にインサートでいけるはず。
応募エンティティのみ最終ステータスを更新する必要がある。ex.)内定/辞退/お見送り など