読んだ本
概要
業務でDDDを参考にしたコードがあり、違和感があったので再読しました。なかなかハードな内容なので、今必要な情報を拾うように読み進めるのがオススメかも知れないです。
ドメインエキスパートとのコミュニケーションの重要性が何度も書かれていて、コードを書く前のすり合わせの大切さを再認識できました。
また、実践としてレイヤードアーキテクチャなどが出てきますが、プロジェクトに合わせた上手な調整(妥協でもある)についてもつぶさに言及されていて、これまた重要性を再認識できます。
第1章 知識をかみ砕く
第2章 コミュニケーションと言語の使い方
第3章 モデルと実装を結びつける
第4章 ドメインを隔離する
第5章 ソフトウェアで表現されたモデル
第6章 ドメインオブジェクトのライフサイクル
第7章 言語を使用する:応用例
第8章 ブレイクスルー
第9章 暗黙的な概念を明示的にする
第10章 しなやかな設計
第11章 アナリシスパターンを適用する
第12章 デザインパターンをモデルに関係づける
第13章 より深い洞察へ向かうリファクタリング
第14章 モデルの整合性を維持する
第15章 蒸留
第16章 大規模な構造
第17章 戦略をまとめ上げる
おすすめの人
- ドメイン駆動設計に詳しくなりたい人
次に読むなら
- ドメイン駆動設計について興味があれば、『ドメイン駆動設計入門』など少し易しい本に戻るのが良さそう(正直これだけだと難しすぎる)
- レイヤードアーキテクチャに興味があれば、『Clean Architecture 達人に学ぶソフトウェアの構造と設計』が良さそう
- 他にも、リファクタリングや、テストなど色々な興味が湧いてくるので、それに合わせて深堀りしていくのが良さそう
感想
業務で触れているソースコードの悪い点が見えてきて泣きそうになりました。大前提のドメインエキスパートとの会話はとても重要なので、疎かにしないように肝に銘じます。
また、蒸留という言葉で説明があるように、常に変化していくのがソフトウェアのため、安心して変更できるようにテストコード重要性についても噛み締めました。
履歴を見ると5年ぶりくらいに読んだのですが、実践できていることも少しだけあり、全部理解できなくても難しい本にチャレンジしておくのは無駄じゃないんだなと勇気をもらえました。