ドメイン駆動設計 モデリング/実装ガイド
ドメイン駆動設計 モデリング/実装ガイド
https://scrapbox.io/files/668a1a6dff9bca001d63dd21.png
DDDの抽象的な定義
ソフトウェア開発手法の一つ
https://scrapbox.io/files/668a1b2efb39ed001d6348f9.png
問題をドメインエキスパートと会話する
ユビキタス言語を作成する
ドメインモデルを作成する
モデルを継続的にソフトウェアに反映する
とはいえ、どんな風にソフトウェアに反映するのかはかなり議論がありそう
ドメインモデルをその他の処理からレイヤー等単位で大きく分離する
ドメイン層として隔離
これを実現するための代表的なアーキテクチャパターン
レイヤードアーキテクチャ
オニオンアーキテクチャ
ヘキサゴナルアーキテクチャ
クリーンアーキテクチャ
ドメインモデリングをどのように行うのか
RDRAやICONIX点も相性がいいが、図の種類が多いのでハードルが高い
ユースケース図とドメインモデル図を推奨している
ユースケース図
ユーザーの要求に対するシステムの振る舞いを定義する図
ユースケースが具体化されると、モデルが解決すべき問題が明確になる
記載内容
アクター: ユーザーの種類を定義する
ユースケース: システムの振る舞いを定義する(hogeをhogeする)
https://scrapbox.io/files/668a2730dc6c7b001daf1254.png
ドメインモデル図
簡易なクラス図
書くもの
属性は書く
ルールなども吹き出しに書く
多重度もかく
集約の範囲を書く
具体例なども書いていい
https://scrapbox.io/files/668a2be4aa01fb001c60a4e8.png
値を受け渡す際のオブジェクトの命名例
https://scrapbox.io/files/668b16fedbaec0001dba64bb.png