ヒント
このコンテンツは、.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 手法を適用する方法を学ぶ必要があります。
その他のリソース
DDD (ドメイン駆動設計)
Eric Evans。 ドメイン言語
https://domainlanguage.com/Martin Fowler。 Domain-Driven 設計
https://martinfowler.com/tags/___domain%20driven%20design.htmlJimmy Bogard。 ドメインの強化: 入門
https://lostechies.com/jimmybogard/2010/02/04/strengthening-your-___domain-a-primer/分散型 Domain-Driven デザインセミナー
https://particular.net/webinars/ddd-design-no-nonsense-implementation-guide
DDD ブックス
Eric Evans。 Domain-Driven 設計:ソフトウェアの中心における複雑さに取り組む
https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/Eric Evans。 Domain-Driven デザイン リファレンス: 定義とパターンの概要
https://www.amazon.com/Domain-Driven-Design-Reference-Definitions-2014-09-22/dp/B01N8YB4ZO/Vaughn Vernon。 Domain-Driven 設計の実装
https://www.amazon.com/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577/Vaughn Vernon。 Domain-Driven 洗練されたデザイン
https://www.amazon.com/Domain-Driven-Design-Distilled-Vaughn-Vernon/dp/0134434420/Jimmy Nilsson。 Domain-Driven デザインとパターンの適用
https://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202/セザール デ ラ トーレ .NET を使用した N 層 Domain-Oriented アーキテクチャ ガイド
https://www.amazon.com/N-Layered-Domain-Oriented-Architecture-Guide-NET/dp/8493903612/Abel Avram と Floyd Marinescu。 Domain-Driven 設計をすばやく行う
https://www.amazon.com/Domain-Driven-Design-Quickly-Abel-Avram/dp/1411609255/Scott Millett、Nick Tune - Domain-Driven デザインのパターン、原則、プラクティス
https://www.wiley.com/Patterns%2C+Principles%2C+and+Practices+of+Domain+Driven+Design-p-9781118714706
DDD トレーニング
- Julie Lerman と Steve Smith。 Domain-Driven 設計の基礎
https://www.pluralsight.com/courses/fundamentals-___domain-driven-design
.NET