Clean Architecture / クリーンアーキテクチャ

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

クリーンアーキテクチャは、Robert C. Martin(通称Uncle Bob)によって提唱されたアーキテクチャパターンであり、フレームワーク、データベース、外部エージェンシーから独立したソフトウェアシステムの構築に重点を置いています。クリーンアーキテクチャの主な目的は、ソフトウェアを階層に分割することで関心事の分離を達成することです。各階層は特定の責務と抽象度を持ちます。

クリーンアーキテクチャの構成要素

クリーンアーキテクチャは、以下の4つの主要コンポーネントで構成され、同心円状に配置されています:

  1. Entities(エンティティ)
    • アプリケーションのコアビジネスルールとドメインモデルを表します。
    • システムの中で最も高レベルで抽象的なルールを含みます。
    • 外部のフレームワークやデータベースから独立しているべきです。
  2. Use Cases(ユースケース)
    • アプリケーション固有のビジネスルールとロジックを含みます。
    • エンティティとのデータのやり取りを調整します。
    • 外部のフレームワークやデータベースから独立しているべきです。
  3. Interface Adapters(インターフェースアダプター)
    • ユースケースとエンティティに最も都合の良い形式から、外部エージェンシー(データベース、ウェブフレームワークなど)に最も都合の良い形式へとデータを変換します。
    • 典型的なMVCアーキテクチャにおけるプレゼンター、ビュー、コントローラーを含みます。
  4. Frameworks and Drivers(フレームワークとドライバー)
    • システムの最も外側の層を表し、フレームワーク、データベース、その他の外部ツールで構成されます。
    • 交換可能であり、内側の層に影響を与えずに容易に置き換えることができます。

クリーンアーキテクチャのメリット

  • 関心事の明確な分離を促進し、システムの保守性とテスト容易性を向上させます。
  • コアビジネスロジックを外部のフレームワークやデータベースから独立させることで、これらの外部要素の変更による影響を軽減します。
  • より模倣性と再利用性の高いコンポーネントの作成を可能にします。

クリーンアーキテクチャのデメリット

  • 設計と計画に多大な初期投資が必要です。
  • 特に小規模なプロジェクトでは、複雑さが増す可能性があります。

クリーンアーキテクチャの適用シーン

  • 時間とともに進化することが予想される大規模で複雑な長期的なアプリケーションに最適です。
  • 複数の外部依存関係を持つシステムや、高いテスト容易性と保守性を必要とするシステムに適しています。

クリーンアーキテクチャは、堅牢で保守性が高く、テスト容易性のあるソフトウェアシステムを設計するための構造化されたアプローチを提供します。クリーンアーキテクチャの原則を順守することで、開発者は変更に強く、理解と修正が容易なシステムを構築することができます。

セキュリティ

まだありません
ローコード管理画面開発SaaSのクエリアなら

管理画面開発の4つの面倒ごとを省略

管理画面開発を高速化するクエリアの基本機能

UIコンポーネント

クエリアなら、ユーザーインターフェイスをデザインする必要はありません。管理画面や、業務ツールに必要なパーツはすでに用意されており、適切なパーツを適切な場所にドラッグ&ドロップするだけでインターフェイスを構築できます。
さらに詳しく見る

データフロー

リクエストを記述したり、ロジックを組んだりすることができるデータフローを使うことで、データソースから返ってきたたデータを表示することも、データソース内のデータを操作することも簡単にできるようになります。フローとして一連の処理をひとまとまりにすることで、複雑な操作も可能です。
さらに詳しく見る

権限管理

本来であれば複雑で大掛かりな開発が必要とされる権限管理機能も、クエリアなら楽に実現できます。どのユーザーがどのページにアクセスすることができるか管理することはもちろん、大切なデータソースに対しても、ユーザーごとにアクセス制限を設けることができます。また、権限グループ機能を使えば、特定の部署やチームごとに権限を管理することも可能です。
さらに詳しく見る

監査ログ

監査ログ
大切なデータに対して実行された処理を、ログとして閲覧することができます。いつ、誰が、どのページで、どのようなクエリを実行したのかを詳細に確認できます。また、ログはCSVフォーマットでダウンロードすることで、必要な人に送ったり、表計算ソフトなどでの分析に活用することも可能です。
さらに詳しく見る