川島さんの「イミュータブルデータモデルで始める 実践データモデリング」は必読なので、マジで今すぐ本屋へ走って買おう、としか言いようの無い、お得情報満載。
ビジネス要求の持つ複雑を表現しているモデル、表現していないモデルの境目が分かるようになるし、そもそも「複雑とは何か?」ということが分かるようになる。
あと、「モデルとして複雑な物はどう表現しても複雑…だけど、それを扱うアプリケーションの複雑さを軽減することができる」という考え方、視点が得られるだけでも超お得。
音読しよう、100回読もう、枕元に置いて夢の中でも読もう
どうやっても複雑さは減らないので、複雑さをコントロールできるようにしていこう!!
もう一回読もうっと。
モデルだけで複雑さのコントロールに打ち勝てるわけじゃないけど、モデルになるべくそのドメインが持つ「複雑さを表現する力」を持たせることでアプリケーション側に余計な負荷を与えない、というのはよく分かるなー https://t.co/IhCmEimPMD
— magnoliak🍧 (@magnolia_k_) 2022年8月27日
モデリングの難しさ、案外、対象のドメインに詳しすぎるために、いろいろなことを先回りし過ぎて理解している(単に今の実装がそうなっているから、そうあるべきだ、みたいな)ことが原因だったりするので、改めてエンティティの性質を分析してみると全然違った設計になったりするんだよなぁ
— magnoliak🍧 (@magnolia_k_) 2022年8月27日
「これが正しい」という先入観が一番設計に邪魔だったりするんだよね
— magnoliak🍧 (@magnolia_k_) 2022年8月27日
パターンの組み合わせが多すぎる時に、でも特定の要素だけを見ると、そこまで増えてはいない、みたいなことが識別できるデータモデルが良いデータモデルではないかと思っています
— magnoliak🍧 (@magnolia_k_) 2022年8月27日
「データモデルだけ」を見ても、データパターンを無限に書くことはできないんだけど、そのヒントがなるべくモデルとして表現されていると嬉しいんだよな
— magnoliak🍧 (@magnolia_k_) 2022年8月27日
でも、そのモデルの向こう側には、モデルでは見えないパターンの組み合わせが膨大に存在するんだよな
モデルの複雑さに負けた時に発生するバグって結局「そんなデータの組み合わせがあるとは思ってませんでした」って結論に行き着くよね
— magnoliak🍧 (@magnolia_k_) 2022年8月27日
でも、ドキュメントに全部は書けなくて...そうすると、発想のヒントをたくさんモデルに込めるしかないかなって思っている
すべてを表現した完璧なモデルも、すべてのパターンを網羅した完璧なデータパターン集も、インタフェース仕様も書けない現実の前に、とりえる現実的な方策として何をするのか?って話で
— magnoliak🍧 (@magnolia_k_) 2022年8月27日
どんなによくできていても、モデルだけでもわからないんだよなー