ドメインモデルの構造を考え続ける
ドメインモデルの構造を考え続けることによって、よりよい問題解決のできるシステムを作り上げる
naoya_ito DDD に関しては揶揄するような批判だったり、妙に矮小化したような発言を見かけることもよくあるが、ドメインモデルの構造を考え続けることによって、よりより問題解決のできるシステムを作り上げるというプロセスはとても有用なプラクティスだと思う
--- logs
naoya_ito 最近、チームで比較的大きな業務システムを作ってるんだけど、ドメインモデルの構造を中心にああでもないこうでもないとディスカッションするということを毎日続けている。ここでいうドメインモデルというのは、コードのことではなくて、業務システムのモデルのこと
naoya_ito こういうユースケースを実現しようと思ったら、ここにこういう構造がないと難しいよねとか、この構造で考えると多分ユーザーインタフェースと連動させたとき、こういう影響を与えるよね、とかそういう話を延々とやってきた
naoya_ito 結果、なんか今日はさっきのミーティングで、今までもやついていたことが霧が晴れるように全てが整合して、とてもシンプルだけど問題は解決できる、というモデルに辿り着いた感がある
naoya_ito 多分、これはドメイン駆動開発なんだと思われる。DDD をやろう、とはチームの中では話してないんだけど、対象にしている業務がとても複雑だったのでその仕様を練り上げるのに断片的な機能だけを考えてても難しいからその背後にある構造を明らかにしよう、と考えてのことだった
naoya_ito DDD に関しては揶揄するような批判だったり、妙に矮小化したような発言を見かけることもよくあるが、ドメインモデルの構造を考え続けることによって、よりより問題解決のできるシステムを作り上げるというプロセスはとても有用なプラクティスだと思う
naoya_ito まあ、本に書かれたことを盲信して、それをやっていればうまくいくと考えてしまうことに対する批判は、そりゃそうだと私も思うけど、それは別に DDD に限ったことでなく、あらゆることがそうだというだけで、ドメイン駆動で物事を考えることがダメだという話ではないと思う
本を盲信する人
naoya_ito 感覚的にはドメインモデルを作って問題解決するというよりは、業務をより深く理解するためにドメインモデルを利用するという感じだ。なんでもそうだが、よりよい理解に至れば、より良い問題解決策は自ずと浮かんでくる
naoya_ito https://twitter.com/naoya_ito/status/1617329241854717952…
一応、こっちも貼っておきますよ。前段のような話をしたからといって、私は DDD は実装の話は大事じゃないということは思ってない。むしろそうやって、実装の話方を矮小化したりとかそういうことがよくないと言ってる
>naoya_ito: DDD の話に関して、ユビキタス言語やそういうのが大事だってので実装の話を矮小化するような感じの発言をみることが増えてきたんだけど本当にそうか? Aggregate を定義して Repository で保存することでシステムの一貫性を保とうとか、そこに収まらないもはドメインサービスや CQRS を使おうみたいな話
naoya_ito 実装から離れてドメインモデルの構造のことを話すと言っても、それはその先にある実装が大体どんなものになるかを頭の片隅に置きながらやっているから、ある程度の方向性が定まるのであり、それは両輪なんですよ
naoya_ito https://twitter.com/uharaqo_jp/status/1659463092412219394…
良スレ。ぶら下げておきます
>uharaqo_jp: エヴァンスさんが書いていたのはドメインエキスパートと開発者が協同するための方法論で、その実用性を実装例で示した。設計も実装も当然重要。ただ、あの実装は一例に過ぎず、20年経った今では戦術的パターンの価値はだいぶ低下したのでは。
と思うけれどすっかり詳細忘れてしまった。 twitter.com/naoya_ito/stat…