bin^2

bin^2

discord server
twitter

架构方法論-なぜアーキテクチャは3つのレイヤーだけで十分なのか

#記事 / 完了 / 公開
#アーキテクチャ
#三層フラクタルアーキテクチャ

アーキテクチャを学ぶ際には、伝統的な三層、四層、DDD、六角形、MVC、MVP、MVVM など、さまざまなレイヤーアーキテクチャについて学ぶことがあります。さらに、新しいレイヤーメソッドが絶えず登場しています。

本当にこれだけのレイヤーメソッドを継続的に学ぶ必要があるのでしょうか?万能のレイヤーメソッドを学ぶことはできるのでしょうか?

アーキテクチャの方法論 - 三層フラクタルアーキテクチャは、適用可能なレイヤーメソッドを生成するための方法論を試みます。

なぜレイヤー分割が必要なのですか?#

レイヤー分割の本質は焦点の絞り込みです。伝統的な三層はビジネスロジックに焦点を当て、MVC はインタラクションフロー制御に焦点を当て、ORM はデータマッピングに焦点を当て、DDD はドメインサービスに焦点を当てます。

どのようにレイヤー分割を行いますか?#

まず、ソフトウェアシステムの中核はビジネスロジックです。ビジネスロジックに焦点を当てるためには、最初のレイヤーであるビジネスロジックレイヤーが必要です。
ビジネスロジックは直接ユーザーに利用されることはできません。ビジネスロジックを適用するには、インタラクションレイヤー(またはプレゼンテーションレイヤー、アクセスレイヤー)が必要です。

ビジネスロジックは単独で構築することはできません。他のアプリケーションのサポートが必要ですので、基礎レイヤー(またはデータレイヤー)も必要です。

他のレイヤーは必要ですか?

現時点では必要ありません。
ここでの基礎レイヤーは、他のシステムのアプリケーションでもあります。つまり、システムのアプリケーションは他のシステムをサポートし、システムの中核は他のシステムのアプリケーションに依存しています。システムとシステム、システムとユーザーの関係はサポートと依存にすぎないため、これですべてのケースをカバーしています。

三層フラクタルアーキテクチャとは何ですか?#

では、なぜ DDD のレイヤー分割は 4 つのレイヤー、ネットワークは 7 つのレイヤーなど、三層を超える設計が存在するのでしょうか?

3 つ以上のレイヤーの設計は、実際には 3 層の基礎の上に、そのうちの 1 つのレイヤーを再び異なる中核に焦点を当てて再分割したものです。

たとえば、中核レイヤーがエンティティと集約に焦点を当てる場合、アプリケーションドメインエンティティにはアプリケーションサービスレイヤーが必要であり、ドメインエンティティをサポートするためにリポジトリ、ドメインイベントバスなどのサポートが必要です。

インタラクションレイヤーでは、インタラクションフロー制御に焦点を当て、中核レイヤーはコントローラーであり、アプリケーションレイヤーはビューであり、サポートはモデルです。異なる表示方法に焦点を当てるため、中核レイヤーはプレゼンターであり、アプリケーションはビューであり、サポートはモデルです。

三層アーキテクチャは、特定の中核に焦点を当て、サポートとアプリケーションの関係に基づいて三層に分割する方法を指します。
三層フラクタルアーキテクチャは、三層アーキテクチャの方法を適用し、各レイヤーで再帰的に三層アーキテクチャの処理を行うプロセスです。三層アーキテクチャの繰り返し適用であるため、フラクタルのような形状をしており、三層フラクタルアーキテクチャと名付けられています。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。