はじめに
最近エヴァンス本を読み始めました。 理由としては下記の3点です。
- 職場でDDDを取り入れ始めたけれど、DDDについて断片的な知識しか持っていない。
- 上記の理由から「DDDとは何なのか」を学んで、自分の中に土台を作りたい。
- DDDについて論争が起きた時に「何が正しくて何がそうでないのか」自分で判断できるようになりたい。
読みっぱなしだと多分頭に残らないので、自分なりにまとめたり疑問点を下記ながら読み進めていこうと思います。
読み進めるに当たり、しょぼちむさんのエヴァンス本ノートを大いに参考にしています。
100日間かけてエヴァンス本を完読しました(PDF公開) - そこに仁義はあるのか(仮)
基本的には自分が大事だと思ったところ、気になったところだけを書き留めていきます。
序文
根本的には、DDDを駆動している原則は次の3つだけ。
第一部
- モデル=簡素化
- 当面の課題を解決する上で関連する側面を抽象化し、それ以外の詳細を無視したもの
ソフトウェアの核心は、ドメインに関係した問題をユーザーのために解決する能力
第一章 知識をかみ砕く
知識をかみ砕くことで、チームの持っている知識が価値のあるモデルとして変わることができる。
※ 知識をかみ砕く
言葉はこの後もたびたび出てくる
知識をかみ砕くとは?
※ かみ砕きの具体的な方法は後述されそう
ドメインエキスパートと共に知識をかみ砕くことで、モデルはプロジェクトの中を流れ続ける情報を体系化するためのツールになっていく。
- ドメインにはエンティティだけでなく、ビジネスの活動やルールも含まれる。
- それらをかみ砕こうとすることでビジネスルールの矛盾をも明らかにできる。
- そうなると、ルールが明確・具体的になる。不要なものはスコープから除外できる。
気になったこと
コミュニケーション
という言葉が頻繁に登場するのが印象的だった。 開発者同士、ドメインエキスパートと開発者どちらでもコミュニケーションは重要だと。それは漠然とチームワークの重要性を述べているわけでは決してなくて、チームが知識をかみ砕いて役立つ形にモデルを作り上げるためには必要不可欠という語られ方をしている印象。- 知識のかみ砕きを、実際ドメインエキスパートとどのようにやっていくんだろう?