友達からおすすめされたのでふわっと聞いてました。
勉強会URL
エヴァンス本も読まずにドメイン駆動設計とは何事か? - connpass
個人的なポイント
この辺りはスライドのまとめなおし
- エヴァンズ本は ソフトウェアのメモリ上に展開される概念世界 での話(この表現わかりやすい)
- この辺りは扱われるテーマではない
- ビジネス、サービスやシステム全体
- DB設計や画面設計(これらはDDDとは別の文脈で考える必要がある)
- 余談:DBのテーブル設計とDDDを混同してやると適切な関心分離がされず、不幸なことになる場合もある
- プロセスの定義の本ではない
- アプリケーション上の話のみ
- DDDで進めるとこうなるというビジョンが示されている
- この辺りは扱われるテーマではない
- エヴァンズ本は設計の本
- 具体的な手法の移り変わりは早いが、不変的な考え方が変わらない
- 業務知識をソフトウェアに反映し、柔軟に拡張し変更できるようにする
- User - Tool(Controller - view) - Model
- 業務モデルをどこまで合わせるか
- サブシステム、パッケージ、クラス、メソッド、変数
以降はのんびり聞きかじりのメモ。
- mental model, computer model というものがある
- DDDのエッセンス
- MVCとは何か
- 大事なのは第1章と3章っぽい
- 1章をじっくり読むべし、そのあとは3章
- 他の設計者や著名な人たちの考え方もある程度組んでみるべし
- バーノン、ケントベック、ファウラー、メイヤー
- パッケージの可視化ツール
- dddjava/jig https://github.com/dddjava/jig
まとめ
この年末年始に第1章だけでもじっくり読んでみたいと思いました。
またDDDとDBのテーブル定義モデルについては自分の中でも若干混同している部分があり、どうやったらうまくいくかなーというのを未だに理解に落とせていないように思います。
こういうのは趣味のプログラミングなどで取得したほうがいいのかなーとか、仕事でやる機会があれば… とか思いますが、どちらも並行するのがいいのかもしれないですね。
理論的なものを学んだら実践に落とすをやっていきたいですね。