この記事の背景 現職では DDD を採用しており、色々な方と DDD についてお話しする機会があります。 その中で、特に初学者の方はアーキテクチャに対して「なぜこんなに面倒な事をするのか?」という印象を持たれているようでした。 そこで、DDDを採用する目的について言語化してみました。 (個人の見解なので、誤りがあればぜひご指摘をmm) 対象読者 基本的な用語は覚えた方 見よう見まねで、ある程度コードも書いた方 初心に立ち返って Why を理解したい方 DDDで実現したいこと 前提として、以下の要素を分けて考えます。 ビジネスルール ビジネスルール以外の要素(例えばGUIやデータの保存など) DDDでは ビジネスルールを反映したプログラムを重要なものと位置付けています。 なぜ重要なのでしょうか? システムは何らかの課題を解決するために存在しています 顧客のニーズの変化など、様々な要因で課題は