モデリングのコツは、「視点」を創造すること
例えばECサイトだとして、「商品」「在庫」「カート」といった要素をたまたま思いついて地図に書き込み境界線を入れたとしたら、多分うまくいかない。在庫管理の文脈でも商品という概念は出てくるし、これらを完全に分けてしまったら結合性が高くなる。
上手く行きやすい方法として最近考えているのは、「視点」を創造するというイメージ。ドメインというだだっぴろい2次元の地上を、複数の視点から見る。3つの視点を作れば、その中にそれぞれのモデルができる。
先程の例で考えると、商品というのは視点ではなくむしろドメインそのものに存在する生の物事だ。様々な視点から捉えられ、モデルごとに異なる概念になりうる。
一方、在庫管理は視点として適切だろう。在庫管理という視点から見た商品(あるいは商品バリエーション)は「在庫数」「発注戦略」といった項目を持つが、「金額」「見た目」といった項目は不要かもしれない。
視点ごとにモデルを作ることで、「商品」のような本来的に複雑なドメインの物事を、よりシンプルな概念に分割統治できる。マイクロサービスや境界づけられたコンテキストの本来のメリットはここにある。
境界づけられたコンテキストとは本来高次元なもの・メタなもの・創造されるものであり、ゆえに2次元の地図に線を入れるとパラダイムを誤りやすい。
関連