Clean Architecture 達人に学ぶソフトウェアの構造と設計
社内のSlackで何度かClean Architectureという単語を見かけたので読んでみました。どうすれば保守性が高い状態を維持できるかについてクラス、コンポーネント、システムという単位で網羅的に説明している良書だと思いました。保守性が高いシステムを作りたい人にはおすすめだと思います。
本書の構成は7部構成になっています。まず第I部で設計とアーキテクチャの定義について読者に問いかけます。第II部では構造化プログラミング、オブジェクト指向プログラミング、関数型プログラミングの3つのプログラミングパラダイムについて確認します。第III部ではSOLID原則について説明し、第IV部ではコンポーネントレベルでの各種原則ついて説明します。以上の説明を踏まえて第V部で改めてアーキテクチャの構成要素について考察した上でクリーンアーキテクチャについて説明します。第VI部ではデータベース、ウェブ、フレームワークがクリーンアーキテクチャから見て詳細であることについて説明します。第VII部は筆者がクリーンアーキテクチャという考えに至った筆者の自叙伝です。目次は以下のとおりです。より詳細な目次は Clean Architecture 達人に学ぶソフトウェアの構造と設計【委託】 - 達人出版会 を参照してください。
- 第I部 イントロダクション
- 第1章 設計とアーキテクチャ
- 第2章 2つの価値のお話
- 第II部 構成要素から始めよ:プログラミングパラダイム
- 第3章 パラダイムの概要
- 第4章 構造化プログラミング
- 第5章 オブジェクト指向プログラミング
- 第6章 関数型プログラミング
- 第III部 設計の原則
- 第IV部 コンポーネントの原則
- 第V部 アーキテクチャ
- 第VI部 詳細
- 第30章 データベースは詳細
- 第31章 ウェブは詳細
- 第32章 フレームワークは詳細
- 第33章 事例:動画販売サイト
- 第34章 書き残したこと
- 第VII部 付録
- 付録A アーキテクチャ考古学
全体的にそうだよねと納得する内容が多かったです。テスタビリティとかポータビリティーを考慮するとこういう感じになるよねということがまとめられている内容だと思います。クラス、コンポーネント、システムという単位でどうすればよいかを説明しているため網羅的なのもよいと思います。一方で、粒度を変えながら説明しているという全体の構造についての説明が若干不足している印象があるため、同じ内容を何度も説明しているようにも読めてしまうのはもったいない印象でした。そこを差し引いても良書であったと思います。