hAcKTion

日々のアウトプット場所。

エリック・エヴァンスのドメイン駆動設計の第3部を読む(3)

エリック・エヴァンスのドメイン駆動設計の「第3部 より深い洞察へ向かうリファクタリング」(8章の手前まで)の私的まとめの第3回。「深いモデル」「深いモデル/しなやかな設計」についての私的まとめです。

深いモデル

初めてモデルを作る場合は要件定義書を参考に作ることがやりやすい。
ただ、どんな場合でも、初めに作られるモデルは、「表面的」で「浅い」知識にしか基づいていない。
そのため、新しいモデラが登場した際にも、同様のモデルが提案されてくる。
これを「深い」知識に基づいたモデルにするためには、ドメインエキスパートの主要な関心ごとと、関連する知識について、何度もドメインエキスパートとすり合わせを行い、誰でもわかるように表現していく事が必要となる。

しなやかな設計

モデルを深いモデルへと変更を行う毎に、リファクタリングも行われる事となる。
そのリファクタリングを行いやすくするために、設計にいくつか「特徴」を持たせる。
また、モデルの変更とリファクタリングを同様に進めていく事で、最もよく変更される場所について、
より柔軟な設計が生まれていき、このプロセスを進めやすくなる。

感想

2つをまとめたのは、モデルを深くするプロセスと、設計の変更を進めていくプロセスは並行していると思ったから。
『しなやかな設計』がやや読みづらかった。。。
「恒常的なリファクタリングの成果は他にもある」とあるが、その前の段落は、「成果」でなく「前提」のように思います。
また、「モデル駆動設計は、2本の足で立っている」という比喩が出てきて、正直どういった比喩なのかがよくわからなくなった。
一度読み返して、「深いモデル」と「それに基づいた設計」の事だと思った。