ひょんなことからエリック・エヴァンスのドメイン駆動設計の読書会をすることになりました。
会話の中で理解したことをメモしていきます。今日は第1章です。
第1部 ドメインモデルを機能させる
- ドメイン:ユーザーの活動や関心についてプログラムを適用する対象領域
- ドメインモデル(モデル):ドメインについての知識を抽象化したもの。特定の図ではなく、図で表された考え方そのものを指す。
- 言語:共通認識を共有するための記号・手段・取り決め。かな。
- エンティティ:データのかたまり
ドメインモデルの有用性
- モデルと設計の確信が相互に形成し合う
- チームメンバが使用する言語の基盤になる
- もっとも関心のある要素を区別する
ソフトウェアの核心
ドメインについて理解することで適切なソフトウェア開発を行うことができる。
第1章 知識をかみ砕く
PCB基盤の設計支援ツールを例に、モデルを作ることで共通言語を得、本当に関心のある事柄を抽出し、プロトタイピングを行い、イテレーションを回すこと=知識をかみ砕くことで効果的なソフトウェア開発を行うことができることを説明
効果的なモデリングの要素
- モデルと実装を結びつける
- モデルに基づいて言語を洗練させる
- 知識豊富なモデルを開発する
- モデルを蒸留する
- ブレインストーミングと実験を行う
これにより知識をかみ砕く。
知識のかみ砕き
ドメインエキスパートと開発者チーム全員がモデルを噛み砕くことで、モデルにビジネスに関する深い知識が反映され、実装の助けになる。
継続的学習
継続的にドメインモデリングのスキル、技術的な知識、ドメインについて学習する。
初期の作業によって知識のかみ砕きというプロセスを発動させ、それによって以降の全作業を効率的に行う。
初期の作業によって知識のかみ砕きというプロセスを発動させ、それによって以降の全作業を効率的に行う。
知識豊富な設計
これらのプロセスによって知識をかみ砕くことで、モデルを変化させ、実装をリファクタリングし、新しい知識をアプリケーションで使用することができるようになる。
0 件のコメント:
コメントを投稿