ヒント
このコンテンツは、.NET Docs で入手できる、またはオフラインで読み取ることができる無料のダウンロード可能な PDF として入手できる、コンテナー化された .NET アプリケーションの電子ブックである .NET マイクロサービス アーキテクチャからの抜粋です。
ビジネス ドメインの理解を反映する各マイクロサービスまたは境界コンテキストのドメイン モデルを設計します。
このセクションでは、複雑なサブシステム、または絶えず変化するビジネス ルールを持つドメイン エキスパートの知識から派生したマイクロサービスに取り組む必要がある場合に実装する、より高度なマイクロサービスに焦点を当てます。 このセクションで使用するアーキテクチャ パターンは、図 7-1 に示すように、ドメイン駆動設計 (DDD) とコマンドクエリ責任分離 (CQRS) アプローチに基づいています。
外部アーキテクチャの違い: マイクロサービス パターン、API ゲートウェイ、回復性のある通信、pub/sub など、内部アーキテクチャ: データ ドリブン/CRUD、DDD パターン、依存関係の挿入、複数のライブラリなど。
図 7-1 各マイクロサービスの外部マイクロサービス アーキテクチャと内部アーキテクチャ パターン
ただし、ASP.NET Core Web API サービスを実装する方法や、Swashbuckle または NSwag を使用して Swagger メタデータを公開する方法など、データ ドリブン マイクロサービスの手法のほとんどは、DDD パターンを使用して内部的に実装されるより高度なマイクロサービスにも適用できます。 このセクションは前のセクションの拡張機能です。前に説明したプラクティスのほとんどは、ここでまたは任意の種類のマイクロサービスにも適用されるためです。
このセクションではまず、eShopOnContainers 参照アプリケーションで使用される簡略化された CQRS パターンについて詳しく説明します。 後で、アプリケーションで再利用できる一般的なパターンを見つけることができる DDD 手法の概要を説明します。
DDD は、学習のための豊富なリソースセットを備えた大規模なトピックです。 まず、Eric Evans による Domain-Driven Design などの書籍や、ヴォーン バーノン、ジミー・ニルソン、グレッグ・ヤング、Udi Dahan、Jimmy Bogard、その他多くの DDD/CQRS の専門家の資料から始めることができます。 しかし、ほとんどの場合、具体的なビジネス ドメインの専門家との会話、ホワイトボード、ドメイン モデリング セッションから DDD 手法を適用する方法を学ぶ必要があります。