Clean Architectureを読みました

この本を読みましたので簡単なご紹介です

https://www.amazon.co.jp/dp/4048930656

構造化プログラミング、オブジェクト指向プログラミング、関数型プログラミングパラダイムの説明の説明から入り、SOLID原則を持ち出してOOPらしくコードの必要性とその概要を説き、 いわゆるアーキテクチャと言われるものがどういったことを関心事としているのかを説明し、それをClean Architectureとして体系化したものを紹介し、実現・構成するために各要素について何をどう考慮するのか解説すると言ったような流れの書籍でした(たぶん)。

いわゆる「アーキテクチャ」にまつわるエトセトラをとてもよくまとめてある良い本だと思います。

ただし、IDDD本のようなソースコードによる具体例がないため、いまいち、パッケージ(≒namespace)設計にはどう落とし込めばいいのかはわかりませんでした。

上記の2点から、アーキテクトを目指し始めた人や目指そうとしている人にとっての、最初の一歩を踏み出すためのガイドライン的な書籍として私は位置づけました。

具体的なコード例がないため、同じClean Architectureを採用していると主張しているアプリだったとしても、人によって解釈が異なり、パッケージ設計は様々になりそうです。

例えば私は、P200の図を素直にパッケージに落とし込むと、層構造を表現するため以下のようになると思います。

.
├entities
├outer ※名前がついてないので私独自のネーミングです
│├controller
│├gateway
│└presenter
└usecase

しかし、トランザクションスクリプトになれた人たちには、フラットに展開した以下のような構造のほうがわかりやすい傾向があるため、以下のようにする場合もありえそうです。

.
├controller
├entities
├gateway
├presenter
└usecase

SOLID原則についてピンポイントで指摘を入れておくと、これを読んでわかった気になるのは危険で、アジャイルソフトウェア開発の奥義などでより詳しく学ぶべきだと思いました。

https://www.amazon.co.jp/dp/4797347783