Magnolia Tech

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

『関数型ドメインモデリング ドメイン駆動設計とF#でソフトウェアの複雑さに立ち向かおう』で実践的なドメイン駆動設計+関数型言語によるコードの書き方を学ぶ

発売されてすぐに買ったはいいものの、大吉祥寺.pmをはじめとするイベント続きですっかり積んだままになっていた『関数型ドメインモデリング ドメイン駆動設計とF#でソフトウェアの複雑さに立ち向かおう』をこの週末で読んでいた。

去年から今年にかけての設計本の大量出版は凄まじいものがありましたが、そんな中で割とがっつりコードに焦点を当てた1冊

全体の1/5くらいを占める第1部は駆け足でドメイン駆動設計のおさらい

残る4/5は、ひたすらF#を用いた関数型プログラミングでのドメイン駆動設計の実装例が続く、というストロングスタイルな1冊

プロダクションコードをF#で書いている人が日本にどれだけ居るのか想像が付かないところもあるけど、これからドメイン駆動設計を元にコードを書きたいと思っている人には言語に拠らず参考になります


一方で、冒頭のドメイン駆動設計の解説は、書いてあること自体は「そうだよねー」なのですが、そんなに理想的に行くのか?という記載もちらほら

相変わらず出てくる「なんでも教えてくれるドメインエキスパート」って都合良すぎじゃない?とか

ドメイン駆動設計を手順っぽく解説すると、「詳しい人にヒアリングして、スコープをちゃんと分解して、実装しましょう」しか言ってなくて、「それはそう」になってしまうのだけど、そもそもなぜこうしないといけないのか?というところが抜けがちなんですけど、どんな課題感から出てきた手法で、この手法を取り入れない場合に、どんなコードができあがるのか?という所をもっと解説していると良かったかも

それに、既に実装が存在するドメインの設計をヒアリングしないといけない場面って、どんな場面なんでしょうね

アーキテクチャを刷新して、外部仕様はそのままに大きく更改をするとき??OA化の時代でもないので、「誰も真の業務要件は分からないので、素早く作って、素早くリリースすることで検証していく」のではなかったのかな?とかね


とはいえ、4/5はひたすら実践的なコード例なので、これをF#で写経するもよし、自分の主戦場たる言語で書くもよし、コードと向き合うには良い1冊ですね!