アンクル・ボブの書を読んだ感想【Clean Architecture / Robert C.Martin】

全体的な感想

全てのプログラマーの必読書!と言っても差し支えないくらいの良書でした。『Clean Architecture』というタイトルなので「なんだか難易度が高そうだなぁ」と思っていましたが、内容がとても簡潔でスラスラ読めました(とはいえ、開発経験が浅いと難しいと思います)。全300ページですが、あっという間に読み終えてしまった感覚。まだまだ理解が足りていない部分もあるので定期的に読み返したい。

本のあらすじ

ひとことで表すと「ソフトウェアを簡単に変更できるように依存性を極力無くしましょう」といった内容。

そのための手法として、構造化プログラミング、オブジェクト指向プログラミング、関数型プログラミングといったパラダイムが生まれた背景や、設計の原則(SOLID原則)について解説されています。そして目指すべきクリーンなアーキテクチャをどのように実現するか、簡単なシナリオをもとに実例を紹介しています。

共感したこと

自社サービスのプロダクトにありがちな内容だと思います。すぐにやりたい施策があったとして、早期リリースするも別の開発案件もあって結局、塩漬けにしてしまうパターン・・・(反省)。「あとでやる」は止めよう。

Javaでディープコピーをしたいとき「memcpyがあれば」、って本気で思うときがある。

気になった点

『第21章 叫ぶアーキテクチャ』で『フレームワークはツールであり、生き方ではない』とあり、「ウェブはIOデバイスであり、アーキテクチャもそのように扱うべし」と説いている。しかし昨今のWebフレームワークを見る限り、アーキテクチャはすでに乗っ取られている状態にあると思う。例えば、Springフレームワークではビジネス層であるServiceImplクラスに@Transactionalを付与するべし、とか。フレームワークに依存しているからこそ楽になっているのも事実。フレームワークにアーキテクチャを乗っ取られないように、と言っているが、どういうことだろうか。