見出し画像

Clean Architectureを読んで[1]

概要

実践ドメイン駆動設計(IDDD)を一応読み終わり、今更ながらClean Architectureも流し見程度でもいいから読もうかなと衝動買いしてこちらも読み終わったのでひとまず全体についての所感を書き残してみたい。

全体

▼この本はつまり

アーキテクチャのルールはどれも同じである!
と表紙に書かれているが、その考えに至るまでの筆者の思考の旅の本。

▼所感

前提として、この本を読む前の自分のクリーンアーキテクチャに関連した知識としては、なるセミさんの動画やQiitaの記事でちょっと見ていたくらい。また直接的ではないが「実践ドメイン駆動設計」をある程度読んでいたタイミングで、ヘキサゴナルアーキテクチャや重要なテクニックの依存関係逆転の法則について学んだ状態。

所感をまとめると、①クリーンアーキテクチャを知るための第一歩はこの本からスタートしない方がよいのでは、②実装のイメージもある程度出来た後に補足として読むのがよいのでは、と思った。


①クリーンアーキテクチャを知るための第一歩はこの本からスタートしない方がよいのでは

付録を除いて6部34章あり、クリーンがいかに普遍的であるかを示すうえで歴史を振り返って語る弊害で、内容が煩雑であったり冗長に感じ、どの部分が大事なのかが分かりにくく、人によってはどうでもいい内容に感じられるであろう箇所も少なくなく読むのに挫折しやすいと思ったため。

あの有名な同心円の図に辿り着くまでに200ページあり、厳密にしてしまうと5ページくらいしか書かれていない。その同心円を見たことある程度でどのように書かれているか期待して読み始める場合、具体的な構造について全く触れられず(触れていないように感じられ)、モジュールレベルやコードレベル、最上位レベルなど意味の異なる階層関係の話が展開する構成は分かりづらそうな気がした。
これは恐らく順序が逆であることが原因で、あの図のために本書を書き起こしたわけではないということなのだと思う。

Amazonの低評価コメントへの反論コメントを書かれている方の内容の通り、本書と他書やWeb上の情報の組み合わせが良いと思う。
この本は技術書というより、筆者がどのようにクリーンアーキテクチャに辿り着いたか、という本だと思う。


②実装のイメージもある程度出来た後に補足として読むのがよいのでは
補足として学べてよいと思った点を簡単に挙げると以下のものになる。

・アーキテクチャは何を目的とするか、何をもたらすのか、のような技術的な話に入る前段としてベースとなる考え方

・依存関係逆転は何を目的とするか、何をもたらすかという点。特に「不安定度」の式をベースとして、どう依存させていくべきかという理論

・現実的な事例を元にどう適用するか
配車サービスや動画販売サイトを例があり、結合されたサービスの横断的な課題に対して簡単にではあるが解決の道が示されている点

・SOLIDをまとめておさらい
原則の意味くらいはググれば幾らでも出てくると思うが、UMLを使って簡潔に分かりやすく書かれていてサラッと見られる点

あとがき

読む前はかなり重厚で文字も小さく読みづらい、理解しにくい本なんだろうなという印象だったが、昔話以外は概ね読みやすかった。文字が大きいことに驚き、図(UML)が幾分か内容の把握を補足してくれる。こちらに慣れると、一緒に購入したAdaptive Codeの文字の小ささに驚く。

この記事が気に入ったらサポートをしてみませんか?