こちらのイベントで登壇してきました。全体的にめちゃくちゃ楽しくて最高でした。天気も良かったのでより最高でした。 パンダさんと初めてお話しすることができたのもラッキーでした。 phpcon-odawara.jp
タイトルは「恣意性から考える変更に強いモデルの作り方」だったんですが、変更に強いモデルの作り方の話ができたのかはあまり自信がない...。
この登壇は自分にとって意味の大きいものでした。 というのもここ数年「ドメインモデルにビジネスロジックを実装するというのはどこまで筋の良いアイデアなんだろうか」という疑問について継続して考えていたからであり、今回の PHP Conference 小田原 2025 と今年の一月に開催された吉祥寺pmでの登壇は、2つ合わせてこの疑問に対する僕なりの現時点での回答だったからです。
そもそもなぜこんな疑問を持つに至ったのかというと、日々ビジネスロジックと思われるものを修正している現実の中でふと「ビジネスロジックは安定しているという噂はどこまで本当なのか」と考えてしまったからでした。
一度そこに疑問を持つとあとは芋蔓式に
- ビジネスロジックは安定しているという噂とビジネスは変化していくべきという噂はどう両立するのか
- もし安定していないとしたら、なぜドメインモデルの変更コストが高い構造になるレイヤ系アーキテクチャを採用しているのか
- ドメインエンジニアリングにおけるドメインロジックと Evans 本で言われているドメインロジックはそもそもズレてないか
- ドメインエンジニアリングにおけるドメインロジックが業界全体で再利用可能なものであるとするならば、アプリケーションロジックこそがビジネスロジックに近いのではないか
- DDD という考え方はライブラリ開発など技術的な領域の設計でも有効に感じるのになぜビジネスという単語を持ち出す必要があるのか
などさまざまな疑問が頭に浮かび、最終的には世間で言われていることと真逆の「ビジネスロジックをドメインモデルから追い出した方が良いのではないか」という仮説を思い浮かべることとなりました。
結局はそこまで過激(?)な主張をする勇気は持てず「変更頻度の高いビジネスロジックを可変性として捉えドメインモデルに組み込むとよいのでは」といった多少穏やかな主張と、「変更頻度が高くなる(可能性が高い)箇所は恣意性の高い箇所なのではないか」という2つの主張をそれぞれ吉祥寺pmと小田原ですることで落ち着きました。とはいえ(特に後者は)相当に勇気が必要ではありましたが。
しかし内心では未だに「ドメインモデルからビジネスのコンテキストを取り除くことができれば汎用性が爆上がりして最強になるはず」と思っているので、もう少し経験を積んでレベルアップしたらそういった話ができればなとも思います。
あとはそもそもビジネスロジックって単語は使わない方がいいんじゃないかみたいな話とかも...。
また、これは完全に言い訳なのですが、恣意性の話に関しては様々な事情で資料を作る時間がほとんど取れず、完成度としてはかなり悔しい出来になってしまったので、またどこかでより深掘りした内容でお話しできればいいなあと思います。
そのほか、当日にご質問いただいた「恣意性というアイデアがどこから来たのか」という話を改めてこちらでも書こうと思いますが、 Clean Craftsmanship という本に以下の記述があり、そこからきています。
A discipline is a set of rules that are composed of two parts: the essential part and the arbitrary part. The essential part is what gives the discipline its power; it is the reason that the discipline exists. The arbitrary part is what gives the discipline its form and substance. The discipline cannot exist without the arbitrary part.
規律とは、本質的な部分と恣意的な部分の2つからなる一連の規則です。本質的な部分とは、規律に力を与えるものであり、規律が存在する理由である。恣意的な部分は、規律に形式と実質を与えるものである。恣意的な部分なしには、規律は存在し得ない
文脈は全然違うので単に僕が曲解してるだけではあるんですが、僕の大好きなマルチパラダイムデザインで紹介されている共通性と可変性がそれぞれ本質的な部分と恣意的な部分として解釈できそうな気がして、そこが始まりでした。
「ドメインモデルとは、本質的な部分(共通性)と恣意的な部分(可変性)の2つからなる一連の規則です。」うん。それっぽい(w
とりとめもなく書き殴ってしまいましたが、改めて PHP Conference 小田原 2025 おつかれさまでした。 運営してくださったみなさん、僕のセッションを聞いてくださったみなさん、ありがとうございました!!!