ナンモワカランアザラシ

技術的なアレコレを自分の言葉で書いて保管・公開しておくための静かなインターネット

『Clean Architecture 達人に学ぶソフトウェアの構造と設計』を読んだ

https://www.amazon.co.jp/Clean-Architecture-%E9%81%94%E4%BA%BA%E3%81%AB%E5%AD%A6%E3%81%B6%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E6%A7%8B%E9%80%A0%E3%81%A8%E8%A8%AD%E8%A8%88-Robert-C-Martin/dp/4048930656

読んだので感想を書く。

ざっくり結論だけ述べると、読んでよかった。

これまで「クリーンアーキテクチャ」はその言葉の存在しか知らなかった。いや、「存在しか」は嘘だな。「ボブおじさんが考えた最強アーキテクチャ」のことだ、ということも知っていた。まあ要はTwitterや社のSlackでたまに流れてくる言葉でしかなかった。インターネットの表層を舐めて暮らしていると時折出会う言葉だ。 そのような「よく出会う言葉」の内容が知れたのがよかった。

また、この本で語られる設計思想は、長持ちするプロダクトを作るうえでいくらでも役立てそうだ。その観点においてもこの本を読んでよかった。 OSSプロダクトのコードを眺めているとcoreusecasesといったディレクトリがたまにある。それらはこの本で書かれているような設計思想が反映されたものなのだろうなあと知れた。

全編通して、「詳細」という表現が頻繁に使われている。訳注から察するに原語では"detail"だったようだ。この言語間のニュアンスの差異を受け止めてあげられればよりよい読書になるのだろう。 "detail"は核から引き剥がせ、というのがクリーンアーキテクチャの主張だろうと私は読み取った。核の概念は"detail"な実装を知る必要がない。 何が核で何が詳細かというと、アプリケーションが存在せずとも適用されるビジネスルールが核だ。 まあ言われてみれば納得する論だ。アプリケーションありきでビジネスが存在するわけではない。ビジネスを自動化するためにアプリケーションが存在する。ビジネスからしたら、アプリケーションがどのようなusecaseを持っていて、どこから入力されてどこに出力してどこにデータを保持するのかには関心がない。

いま、詳細と核が密に結びついているが故にテストが全然かけないプロダクトに向き合っているので、身に染みる本だった。