Clean Architecture 達人に学ぶソフトウェアの構造と設計

社内のSlackで何度かClean Architectureという単語を見かけたので読んでみました。どうすれば保守性が高い状態を維持できるかについてクラス、コンポーネント、システムという単位で網羅的に説明している良書だと思いました。保守性が高いシステムを作りたい人にはおすすめだと思います。

本書の構成は7部構成になっています。まず第I部で設計とアーキテクチャの定義について読者に問いかけます。第II部では構造化プログラミング、オブジェクト指向プログラミング、関数型プログラミングの3つのプログラミングパラダイムについて確認します。第III部ではSOLID原則について説明し、第IV部ではコンポーネントレベルでの各種原則ついて説明します。以上の説明を踏まえて第V部で改めてアーキテクチャの構成要素について考察した上でクリーンアーキテクチャについて説明します。第VI部ではデータベース、ウェブ、フレームワークがクリーンアーキテクチャから見て詳細であることについて説明します。第VII部は筆者がクリーンアーキテクチャという考えに至った筆者の自叙伝です。目次は以下のとおりです。より詳細な目次は Clean Architecture 達人に学ぶソフトウェアの構造と設計【委託】 - 達人出版会 を参照してください。

全体的にそうだよねと納得する内容が多かったです。テスタビリティとかポータビリティーを考慮するとこういう感じになるよねということがまとめられている内容だと思います。クラス、コンポーネント、システムという単位でどうすればよいかを説明しているため網羅的なのもよいと思います。一方で、粒度を変えながら説明しているという全体の構造についての説明が若干不足している印象があるため、同じ内容を何度も説明しているようにも読めてしまうのはもったいない印象でした。そこを差し引いても良書であったと思います。