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 」です。

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

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

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

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