Magnolia Tech

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

「ドメイン駆動設計入門」を買って、読んだ

先日開催されたObject Oriented Conferenceに象徴されるように、最近設計論の議論が盛んでですね。設計論と言えば、「エリック・エヴァンスのドメイン駆動設計」、いわゆるDDD本がよく取り上げられてきましたけど、なかなかヘビーな本だし、案外コードは全然出てこないので、読んだ上で「で、どうすればいいの?どんなコードを書けばいいの?」という疑問がわきます。

おなじくドメイン駆動設計の解説書である「実践ドメイン駆動設計」も、語られる順番がDDD本と変えることで併せて読むことで理解を深めることを意図していましたが、やはりコードの少なさは同じくらいでした。

ドメイン駆動設計入門」は、とにかく豊富なコード例が出てくるところが前述の2冊と異なるところです。特に一番わかりやすい「値オブジェクト」の詳細な解説はドメイン駆動設計入門の最初の一歩として非常に効果がわかりやすいですね。まずこの本を読んでから、DDD本や、実践本を読むのは良い入り方だと思います。


自分の中でこの本を読んでて思ったのはデータストアとの関わり方ですね。これまでアプリケーション構造に最も影響を与える存在がデータストアだったと思っていて、果たして本当にそのレイヤーを正しく抽象化して分離できるのか?その抽象化は正しいのか?という所はまだ答えがないですね。

SQLにたくさんのビジネス要求が詰まっているコードも多いですし、どこにドメイン知識を寄せていくのか?という時に、データストア固有のアクセス方法はまだ無視できるほどにはなっていないと思っていて、この辺の抽象化の考え方はまだまだ理想と現実があるなーって思いました。


とはいえ、ドメイン駆動設計は設計観点の一つの過ぎなくて、別に何か正解を示してくれる訳ではないので、ばんばんコードを書いて、「自分は何の課題を解決したいの?そのためにはどんな手法が良いとされているの?」というところは考えていくしかないんですけどね!そんなことを考えるきっかけとしても「ドメイン駆動設計入門」はおすすめです。


エリック・エヴァンスのドメイン駆動設計

エリック・エヴァンスのドメイン駆動設計

実践ドメイン駆動設計

実践ドメイン駆動設計