2026-03-22

Clean Architecture と The Clean Architecture

TL;DL

  • Clean Architecture と The Clean Architecture は違う
    • The Clean Architecture ⊂ Clean Architecture
  • 同心円の図は The Clean Architecture ⊂ Clean Architecture
  • 重要なのは Clean Architecture の思想
  • 日本語にすると Clean Architecture も The Clean Architecture もクリーンアーキテクチャ
  • この記事は整理を目的としており、Clean Architecture や The Clean Architecture の方法論については書かれていない

はじめに

タイトルにもあるように『Clean Architecture』と『The Clean Architecture』は違うという話をしたい。この話題自体は、n 番煎であり、既に多くの方がブログや X (旧 Twitter) で発言している。

しかし、『Clean Architecture』と『The Clean Architecture』を混同しているような記事が Qiita や Zenn で投稿され続けているのではないだろうか。

これから Clean Architecture を学ぶ人にとってノイズにしなからないため、改めて Clean Architecture 達人に学ぶソフトウェアの構造と設計 が何を言っているのかについて書いていこう。

諸悪の根源

英語では Clean Architecture と The Clean Architecture で The の有無によって何を指しているのか区別されているのに対して、日本語では Clean Architecture も The Clean Architecture も『クリーンアーキテクチャ』となる。両者は似て非なるものにもかかわらず、日本語話者にとってはその区別が英語表記されない限り難しい。

Clean シリーズ

Clean Architecture は Clean シリーズと呼ばれている Robert C. Martin が執筆した書籍 のうちの一つだ。

Clean をシリーズとして冠しており、そのうちのアーキテクチャについて書かれた本で紹介されたアーキテクチャのため Clean Architecture となっている、と思っている。この命名については、クリーンアーキテクチャの功罪でも触れられているように Clean Architecture という名前は誤解を招く。

Clean Architecture

Clean Architecture を振り返る

Clean Architecture はあまりにも同心円の図で表現された The Clean Architecture が有名だが、そこに至るまでにソフトウェア開発においてよく知られた一般的なプラクティスやプログラミングの技法についての説明がされている。

第1部では、設計とアーキテクチャがソフトウェア開発に与える影響や価値について。第2部では、構造化プログラミング、オブジェクト指向プログラミング、関数型プログラミングについて。第3部では、頭文字を取って SOLID と呼ばれる 5 つの設計の原則について。第4部では、コンポーネントの原則について。そして、第5部で Clean Architecture と有名な The Clean Architecture に至る解説がなされている。

この中で第1部から第4部までは、Clean Architecture とは関係無く、保守可能なソフトウェアを開発する上で一般常識にあたる内容となっている。また、第2部を読めば特定の XXX 指向を語るプログラミング言語の機能を持ってプログラミングパラダイムを批判することが如何に意味がないことが理解できるだろう。少し前に書いた記事で触れたように Java の言語機能を持ち出してオブジェクト指向は〜という発想にはならないし、カプセル化、継承、ポリモーフィズムをもってしてオブジェクト指向という主張に惑わされることもないのではないだろうか。

The Clean Architecture

Clean な Architecture の一例としての The Clean Architecture について見てみよう。

The Clean Architecture

ref: Clean Coder Blog

Clean Architecture から学べること

「Clean Architecture を振り返る」のセクションでも書いたが、Clean Architecture 達人に学ぶソフトウェアの構造と設計 には当たり前のことしか書かれていない。しかし、書かれている内容が基本的な知識となっている人にとってはあえてこの本を読んで学ぶようなものではなく、個々のトピックについてより詳しく解説された本が存在することを知っているため、そちらを読んだ方がよいという判断をするのではないだろうか。実際に、私がこの本を読んだのは 2019 年か 2020 年頃だったと思うが、7 年ほどエンジニアとして働いて思ったことは、世のコーダーは Clean Architecture に書かれていることを知った上でコーディングをして欲しいというとだ。 Clean Architecture に書かれていることを実践するべきかどうかはその組織やシステムに依存するが、 Clean Architecture で述べられている基本的なこと (The Clean Architecture に至るまでに書かれていること) は前提知識として共有されていて欲しい。

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

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

Amazon アソシエイトについて

この記事には Amazon アソシエイトのリンクが含まれています。Amazonのアソシエイトとして、SuzumiyaAoba は適格販売により収入を得ています。