Magnolia Tech

いつもコードのことばかり考えている人のために。

『「入門」ドメイン駆動 基礎と実践・クリーンアーキテクチャ』を読んだ

ここ2年ほどのSoftware Design誌の「ドメイン駆動設計」と「クリーンアーキテクチャ」の特集をまとめた、特別号『「入門」ドメイン駆動 基礎と実践・クリーンアーキテクチャ』を買ってきた。

雑誌に掲載されていた時から、「これは完全保存版」と思っていたけど、やっぱりみんなそう思っていたのか独立した1冊に纏まりました。

一家に一冊、一企業に一冊。


ドメイン駆動設計」といえば、原典とも言うべき『エリック・エヴァンスのドメイン駆動設計』という本が最も有名なのだけど、2024年の現代でこの本を読みこなすのはけっこう難しい......というか、出版された当時のシステム開発の時代背景、技術的な動向などを理解した上で読まないと意図が汲み取りづらいのと、単純に日本語版で538ページも有って、最後まで読める気が全然しない。

もっと内容を噛み砕き、現代の開発事情に合わせて内容をアップデートし、雑誌の紙面に合わせて理解し易いようにまとめられた本が有る、というのは本当に幸せなことです(10年以上前、いくら読んでもさっぱり分からなかったので......)

この本に書かれていることを頭から理解して、その通りにやれば、「はい、ドメイン駆動設計に基づく設計成果物ができあがりました」とはならない......そもそも「ドメイン駆動設計」自体が何らかの「設計の手順」や「フレームワーク」「ツール」などを提供してくれる訳ではない。何か画期的なモデリング手法や、「”高価な”モデリングツール」が有る訳でもない。

それにもっと極端なことを言えば、「対象の業務をちゃんと理解してアプリケーションを書きましょう」以上のことは言ってないので、ある程度ベテランの人から見えれば「それはそうでは?」以上の感想が出てこないかもしれない。

一方で、システム設計の初学者からすれば「なかなか具体的な話にならないな」と思えるかもしれない。

極論を言えば、分析と実装の分断を止めよう、複雑な要件に対してはちゃんとモデルを書こう、くらいしか言ってない。

「要求に合わせて、実装しているだけで、目新しいことは言ってないのでは?」みたいにも読めてしまう。

そういう意味では、限られた紙面では難しいのかもしれないけど、「順次増えてる複雑性に耐えられなくなった事例」「ドメインモデルを描かずに実装を続けていって一貫性や、整合性が崩れてしまった事例」みたいなのがあるとわかりやすかったのかもしれない。

でも理解が進めば、「あー確かに正しいことが正しく書かれている...!!!」と分かる日が来ると思いました。


一方でクリーンアーキテクチャの章は、「あの4つの円の図に沿った設計をすればクリーンアーキテクチャになるわけではない」と最初に宣言されているのが良いですね


この本だけを読んで、ドメイン駆動設計を理解する、というのは難しいと思うのですが(元が雑誌の特集記事という、情報量が限られたところが出発点なので)、まずはざっと何が主張されていることなのか?というのを理解するにはいい本だと思います。

ダメな事例は周りで聞いてみましょう!