web-dev-qa-db-ja.com

クリーンアーキテクチャとオニオンアーキテクチャ

私は オニオンアーキテクチャ について読んでいます、そして今日私はボブおじさんの クリーンアーキテクチャ について知りました。

私の人生では、両者の違いはわかりません。それらは同一に見えます(命名規則以外)。

2つの建築スタイルに違いはありますか?はいの場合、説明していただけますか?

乾杯

28
user3373870

「クリーンアーキテクチャ」という用語は、記事の名前にすぎません。タマネギのアーキテクチャは、記事で説明されている概念の特定のアプリケーションです。

17
George Howarth

クリーン、六角形、タマネギなどのアーキテクチャはありますが、目的は同じで、実装にいくつかの違いがあります。

  1. フレームワークに依存しない。アーキテクチャは、機能を搭載したソフトウェアのライブラリの存在に依存しません。これにより、制限された制約にシステムを詰め込む必要がなく、そのようなフレームワークをツールとして使用できます。
  2. テスト可能。ビジネスルールは、UI、データベース、Webサーバー、またはその他の外部要素なしでテストできます。 UIに依存しません。システムの他の部分を変更することなく、UIを簡単に変更できます。たとえば、ビジネスルールを変更せずに、Web UIをコンソールUIに置き換えることができます。
  3. データベースに依存しない。 OracleまたはSQL ServerをMongo、BigTable、CouchDBなどに置き換えることができます。ビジネスルールはデータベースにバインドされていません。
  4. 外部機関とは無関係。実際、ビジネスルールは、外の世界についてまったく何も知りません。

すべてのアーキテクチャでの目標は、最も安定しているものは、より頻繁に変更される安定性の低いものに依存しないようにすることです。

より重要でより安定した層はドメインです。

これは、これらのアーキテクチャーよりも重要です。タマネギの場合、ユーザーインターフェイスの入力からインフラストラクチャ、ドメインなどへの調整対象のオブジェクトがアプリケーションサービスである場合、またはクリーンなアーキテクチャーの場合、インタラクターは小さな詳細です。

14
xurxodev

それらは同じように見え、主にテスト可能性と関心事の分離という同じ目的を達成するために使用されますが、ボブおじさんのクリーンアーキテクチャはよりユースケース中心であることに注意してください。

0
user1506878