ドメイン駆動設計という用語が世間に広まってからかなりの年月が経過していますが、書籍を読んでもなかなか理解しにくい部分があると思います。私がソフトウェアエンジニアとして経験してきた中で、ドメイン駆動設計の難しいところについて私なりの説明をしたいと思います。最も重要なドメインとユビキタス言語の概念の誤解が広まっているように見受けられるので、そこを切り口にして説明します。ドメインは最初から分かるものではなく、理解が深まるにつれて設計も変わります。その変化を受け入れやすい構造を選ぶことが重要だということが、この記事の根幹となる考えです。 ドメインとユビキタス言語 ドメイン駆動設計の根幹をなす概念ですが、残念ながらEric Evansの書籍の説明は非常に分かりにくいです。この2つの概念は双対的な概念で簡潔に言い換えると以下のようになります。 ドメイン 業務に携わる人たちが同じ用語で意思疎通する業務範

