「ドメイン駆動設計をはじめよう」という本を読み始めた
第三部の「ドメイン駆動設計の実践」について読書メモを書いておく
第一部の読書メモ
【技術本まとめ】ドメイン駆動設計をはじめよう(第一部)読書メモ - UGA Boxxx
第二部の読書メモ
【技術本まとめ】ドメイン駆動設計をはじめよう(第二部)読書メモ - UGA Boxxx
ドメイン駆動設計の実践
この第三部は、どのようにDDDを実践するかの話
各章の見出しは以下
- 設計の経験則
- 設計を進化させる
- イベントストーミング
- 現実世界のドメイン駆動設計
10. 設計の経験則
設計をやる上でのいくつかの経験則を紹介している
- 区切られた文脈の「最適な大きさ」とは
- モデルを作ってから区切られた文脈の大きさを決定する
- 広い範囲をまず境界とする
- 物理的に切り離してしまった境界を後から変更するよりも、論理的な境界を後から引き直す方が簡単
- 一般と補完の業務領域は、固定的なのであまり変化しないので、まずは同じ区切られた文脈に含めておくと対応しやすい
- 業務ロジックの実装
- 技術方式の選択
- テストの基本方針
11. 設計を進化させる
事業活動は変化するもので、それにともなり当然業務領域も変化するので選択した設計も進化が必要
この章では設計方式の再検討によって起こる実装方針の見直し方、移行の仕方を紹介している
12. イベントストーミング
業務のプロセスのモデルを迅速に作ることを目的に、関係者が集まってブレストスタイルで進める手法
ざっくり手順
- 一連の業務イベントを時系列に並べながら業務プロセスを探求する
- アクター・コマンド・外部システムなどの要素を少しずつ追加しながらモデルを拡張する
- 業務プロセスの仕組みが説明できるところまで要素が揃ったら終了
13. 現実世界のドメイン駆動設計
DDDは新規プロジェクトで一連の設計手法に精通しているメンバーがそろっている場合にはうまくいくかもだが、現実問題そうでないことが多い
ただ、全くやれないわけではないので、やれるものは取り入れると良いという話
ストラングラー方式による移行
「ストラングラーフィグ」という奇妙な生態を持つ熱帯植物の性質から名付けられた方式
ストラングラーとは、他の樹木にくっついて成長し、根が地面に届いたらくっついた樹木を枯らすという性質を持つ
ストラングラー方式は、新たな要求に対する区切られた文脈をストラングラーとして追加し、だんだんとそちらに移行する方式
既存システムのコードベースを縮小させていき、最終的には完全移行させる