SPONSORED

クリーンアーキテクチャ(くりーんあーきてくちゃ)

最終更新:2026/4/25

クリーンアーキテクチャは、関心の分離と依存性の反転を用いて、ビジネスロジックを外部要素から独立させるソフトウェア設計原則である。

別名・同義語 六角形アーキテクチャポートとアダプターアーキテクチャ

ポイント

ロバート・C・マーティンによって提唱され、テスト容易性、保守性、および独立性を高めることを目的とする。

クリーンアーキテクチャとは

クリーンアーキテクチャは、ソフトウェアシステムの設計において、ビジネスロジックを外部の技術的な詳細から分離することを目的とした設計原則の集合です。ロバート・C・マーティン(通称「Uncle Bob」)によって提唱され、その中心的な考え方は、システムの最も重要な部分であるビジネスロジックを、データベースUI、フレームワークなどの外部要素から独立させることです。

主要な原則

クリーンアーキテクチャは、以下の主要な原則に基づいています。

  • 依存性の反転: 高レベルモジュールは低レベルモジュールに依存すべきではありません。どちらも抽象化に依存すべきです。抽象化は詳細に依存すべきではありません。詳細は抽象化に依存すべきです。
  • 関心の分離: システムの各部分は、特定の責任を持つべきです。これにより、変更の影響範囲を局所化し、システムの保守性を向上させます。
  • 独立性: システムの各部分は、他の部分から独立して開発、テスト、および変更できるべきです。

アーキテクチャの層

クリーンアーキテクチャは、通常、以下の層で構成されます。

  • エンティティ: ビジネスロジックの中核となるデータ構造とルールを定義します。
  • ユースケース: システムが提供する能を定義します。エンティティを使用してビジネスルールを適用します。
  • インターフェースアダプター: ユースケースと外部要素(UI、データベースなど)間の変換を行います。
  • フレームワークとドライバー: UI、データベース、Webフレームワークなどの外部要素が含まれます。

メリット

クリーンアーキテクチャを採用することで、以下のメリットが得られます。

  • テスト容易性の向上: ビジネスロジックが外部要素から分離されているため、単体テストが容易になります。
  • 保守性の向上: システムの変更が局所化されるため、保守が容易になります。
  • 独立性の向上: システムの各部分が独立しているため、異なる技術スタックを使用したり、外部要素を簡単に交換したりできます。
  • 柔軟性の向上: ビジネス要件の変化に柔軟に対応できます。

SPONSORED