開発者がソフトウェアを開発するにはそのソフトウェアの利用者を取り巻く世界について知る必要があり、ソフトウェアの利用者にとって重要な知識はなんなのかを見極める必要がある。
厳選した知識を元に利用者の問題解決の最善案を常に考えていく必要がある。
ドメイン駆動設計はそういった洞察を繰り返しながら設計を行い、ソフトウェアの利用者を取り巻く正解と実装を結びつけることを目的としている
知識をコードにする
ドメイン駆動設計をその名の通り、ドメインの知識に焦点を当てた設計手法
「ドメインとは何か?」
ソフトウェア開発におけるドメインとは「プログラムを適応する対象となる領域」を指す
(例)
会計システムのドメインは下記の概念がある
「知識に焦点を当てるとは?」
モデルとは「現実の事象あるいは概念を抽象化した概念」