蒸留
その意味の通り、混ざりあったコンポーネントを分離するプロセス。
モデルそのものが、ビジネスの知識を蒸留させたものです。ここまで何度も「蒸留」という言葉が出てきましたね。
戦略的な設計としての「蒸留」はもっと踏み込んで、モデルから特別に価値のある「コアドメイン」を抽出するといことに焦点を当てていきます。
その「コアドメイン」をどう抽出するかということと、蒸留の副作用として出現し、役に立ち、それはそれで価値のある汎用サブドメインなどのテーマにも触れていきます。
コアドメイン
大きなシステムは関連するコンポーネントが非常に多く、かつ複雑。しかも、その全てが必要です。
こうなると、システムを作る動機になっているビジネスの本質部分が埋もれてしまいます。
複雑なビジネスの知識を整理するはずのドメイン駆動設計の目的からも離れてしまいます。
このことが何を意味するかというと、
コードがわかりずらい、理解するのが難しいシステムと同じことが起きるのです。
つまり、全体像を見失い、変更がしにくいシステムになってしまうということです。
そこで、
モデルの極めて重要なコアを洗練し、優秀な技術者をコアの実装に割り当てること。
そして、コアに対して、しなやかな設計を開発し、システムのビジョンを実現することが必要になってきます。
明日は、誰が、どうコアドメインを抽出し、実装していくのかを読んでいきます。