Dyno

Clean Architecture

Robert C. Martin

ソフトウェアの設計の考え方である「 Clean Architecture 」(クリーン・アーキテクチャ)を紹介した書籍です。著者は「 Uncle Bob 」の相性で有名な Robert Martin 氏です。 Robert Martin 氏といえば、ソフトウェア関連書籍で有名な「 Clean Code 」「 The Clean Coder 」等も執筆されています。

副題は「 A Craftsman's Guide to Software Structure and Design 」です。

「レイヤードアーキテクチャ」「オニオンアーキテクチャ」「ヘキサゴナルアーキテクチャ」等を発展させた「クリーンアーキテクチャ」の考え方と、そこに至るソフトウェア設計の歴史がとても丁寧に(長々と)解説されており非常に読み応えがある一冊です。

ソフトウェアアプリケーションの核は「エンティティ」と「ユースケース」であり、 DB や UI その他外部のインタフェース、そしてフレームワークさえもが細部である ――その考え方は私にとって目からウロコでした。しかし非常に説得力のあるものです。

クリーンアーキテクチャは万能ではないので使いどころを適切に見極める必要がありますが、適切に利用できれば得られるメリットはとても大きいと思います。

私はこの書籍を読んでやっと「 DI: Dependency Inversion 」の考え方を本当に理解できた気がします。