ドメイン駆動型アプリケーション アーキテクチャの実践

適切なアプリケーション アーキテクチャは、プロジェクトの開発を良い方向に促進し、保守が容易であるだけでなく、チーム メンバーが効果的にコラボレーションできるように導きます。

DDD はアプリケーション アーキテクチャの実装を現場の視点から推進するもので、次にランディング ソリューションを紹介します。

アーキテクチャの階層化

まずアーキテクチャレベルでは、DDDの階層化アーキテクチャパターンを踏襲しつつ、六角形アーキテクチャの形状と組み合わせて、新たな階層化アーキテクチャパターンを形成する。次のように:

ここに画像の説明を挿入

各レベルの責任は次のとおりです。

  • アダプター層(アダプター)はシステムトラフィックの入り口となり、リクエストをアプリケーション層に振り分けて特定のアプリケーションロジックを処理します。この層は、ビジネス インターフェイスのリクエスト、バッチ処理、メッセージなどをカバーします。
  • システムのファサードとしてのファサード レイヤー (ファサード) は、システムが外部に公開される機能を表現するために使用されます。
  • アプリケーション層 (アプリケーション) は、システムのアプリケーション ロジック オーケストレーション層であり、システム間またはアグリゲーション間のビジネス オーケストレーションに使用され、コア制御機能を表現しません。
  • ドメイン層 (ドメイン) は、ドメイン駆動アーキテクチャの中核として、システムの中核となるモデル、ルール、サービスを担い、システム全体の頭脳となります。
  • インフラストラクチャ層(インフラストラクチャ)は、ドメイン層をサポートするシステムの基盤であり、この層の位置付けは主にシステムの基本機能(キャッシュ、ストレージなど)、下流のサポート システムの統合、およびドメインの腐食防止機能。

アーキテクチャの依存関係

プロジェクト アーキテクチャの観点から見ると、各コンポーネント モジュール間の依存関係の相互作用は次のとおりです。

ここに画像の説明を挿入

工学構造

アーキテクチャのランディング モードを形成した後、プロジェクトの実装も非常に重要であり、プロジェクトの保守性とコーディングのランディング ステージの実装戦略に影響します。着陸可能なエンジニアリング構造を見てみましょう。

.
|-- app
|   |-- adapter
|   |-- application
|   |-- domain
|   |-- facade
|   `-- infrastructure
|       |-- acl
|       |-- dal
|       |-- integration
|-- bootstrap
|-- conf
`-- test

各ディレクトリの意味は以下のとおりです。

  • app: エンジニアリング アプリケーションがコードを保存するディレクトリ。サブディレクトリは、前のアーキテクチャの階層化で説明したさまざまなモジュールです。
  • ブートストラップ: アプリケーションのスターター、および環境を除くアプリケーションの構成情報
  • conf: 環境関連の構成情報
  • テスト: プロジェクト関連のテスト コード

エンジニアリング構造の観点から、インフラストラクチャ層は責任に従って分割されます。

  • dal: データベース対話モジュール
  • 統合: システム統合モジュール (下流システムとの統合、他の基本機能の統合など)
  • acl: システム防食層、ドメインと基本設定間の防食絶縁

プロジェクトの構造に関する詳細情報を表示するには、[ddla アーキテクチャ エンジニアリング仕様]をクリックします。

スキーマの使用法

次の Maven コマンドを使用して、groupId、artifactId、バージョン、パッケージ、およびその他のパラメーターを期待する値に置き換えます。スキャフォールディングのバージョン (ddla-archetype.version) は、groupId (ddla) を使用して Maven ウェアハウスで直接検索できます。 -アーキタイプ)。

mvn archetype:generate \
    -DgroupId=com.lazycece.ddlademo \
    -DartifactId=ddlademo \
    -Dversion=1.0.0-SNAPSHOT \
    -Dpackage=com.lazycece.ddlademo \
    -DarchetypeArtifactId=ddla-archetype \
    -DarchetypeGroupId=com.lazycece.ddla \
    -DarchetypeVersion=${ddla-archetype.version}
    

オープンソースアドレス

https://github.com/lazycece/ddla

おすすめ

転載: blog.csdn.net/qq_28851503/article/details/131238603