エリック・エヴァンスのドメイン駆動設計を読んでいる ( 5 )
モデルと実装を紐づける
設計と実装でモデルをわけない事
- 分析だけの「分析モデル」であってはいけない
- フィードバックを受け、実装も分析も更新されること
- 設計 or 設計の中心となる部分がドメインモデルに紐づいてないならそのモデルに価値はほとんどない。ソフトウエアが正確かどうかも疑わしい
- モデルと設計された機能の紐付けが複雑だと、設計の変更がすぐにフィードバックされなくなる
モデルと設計(つまりコード)、現実的に同期できるものなのか?
「実装を一部の狂いもなくモデルに紐づけるには、通常、オブジェクト志向プログラミングのようなモデリングパラダイムをサポートする、ソフトウエア開発のためのツールと言語が必要」
モデリングと相性の良いプログラミング言語、ツールを選ぶべき。
- Cなどの手続き型はやはり相性よくない
- オブジェクト指向言語は相性良い
Golangは…?
- モデルと実装での食い違いを、内部にも外部(ユーザー)にも見せないこと。作らないこと。破綻する
かの高尚なInternetExplolerがURLのお気に入りをブクマシステムと混ぜてしまっているため、文字によって切り取られたり微妙
- モデルを作る技術的な人は、一定時間コードにも費やさないといけない(つまり、設計者と実装者は同じ)