この記事は、ZOZOアドベントカレンダー2025 #11 の1日目の記事です。
11月15日に、JJUGのアフターイベントにて「意外と難しいドメイン駆動設計」というタイトルでお話させていただきました。
今多くのドメイン駆動設計本がある中で、Evans本を読み込む方がどのぐらいいるかはわかりませんが、その8章には「ブレイクスルー」というパターンがあります。
単純に要件を整理し実装するだけでは得られない隠れたドメインというのはあるもので、リファクタリングを繰り返していくことで、徐々に深いモデルが明らかになる。
そのモデルが発見されれば一気に複雑さが解消し、ドメインに対する理解の深さが一気に深まり、説明が容易になり、ビジネス上の重要な変更も容易になることでしょう。
生成AIでドメイン駆動設計でとプロンプトに打ち込めば、ある程度きちんとしたモデルを書いてくれる時代になりましたが、こういう発見は生成AIを持ってしても今のところ難しいと思います。この登壇ではその点を解説したものでした。
アプリケーションの作成もビジネス上の変更における修正も全部生成AIがやるのだからモデルはどうでもいいのでは?という考えも否定はしないですが、特にビジネスの中核の領域、サービスを特徴づけ、ユーザーがそのアプリケーションを採用する理由にもなる箇所の実装は、理解しやすい、充実されたドメインモデルが構築されているという状況が自分は好みます。
中核の領域というのは、直接アウトカム・インパクトにつながるところなので、(作って終わりのプロジェクトでなければ)頻繁に調整・変更が入るはず。
“中核の業務領域は頻繁に変更されます。 1回の開発で簡単に解決できる課題なら、おそらく競争優位の源泉にはなりません。そういう解決策では、競合他社がすぐに追いつくでしょう。”
(ドメイン駆動設計をはじめよう 1章より)
その調整・変更は 「生成AIより早く変更可能にしたい」「いちいち生成AIでプロンプトを入力しなくても、モデルをパッと見ただけで変更可能にしておきたい」 と思ってしまうのは生成AI対して挑戦的でしょうかね?