Core、Use Cases、Infrastructure、Webを分離した、ASP.NET Core向けClean Architectureソリューションテンプレート。
evolutionary-architecture/evolutionary-architecture-by-example
.NET 9で構築されたフィットネススタジオのシステムが、シンプルなモノリスからモジュラーモノリス、マイクロサービス、戦術的DDDへと進化する過程を段階的に示すサンプルリポジトリです。
- スター
- 3,577
- フォーク
- 550
- 未解決の Issue
- 15
- 最終コミット
- 12 日前
これは何?
Evolutionary Architecture by Exampleは、.NETのソフトウェアアーキテクチャを学ぶためのリポジトリです。Fitnetという架空のフィットネススタジオアプリを題材に、4つの章を通して、整理された単一プロジェクトから始め、目的別のプロジェクトにモジュールを分離し、実際のメッセージキューを使って最初のマイクロサービスを切り出し、最後に値オブジェクト、集約、ドメインイベントなどの戦術的ドメイン駆動設計を適用するまでを追います。
また、Event StormingやDomain Storytellingを使ったサブドメインへのドメイン分割、境界づけられたコンテキストの定義、各モジュールに必要なアーキテクチャの選択といった、戦略面の取り組みも扱います。各章には個別のガイドとインタラクティブな図があり、アーキテクチャ上の意思決定は決定ログに記録されています。
コードはC#と.NET 9で記述され、Minimal APIsを採用しています。MediatR、Dapper、Entity Framework、FluentValidation、.NET Aspire、Testcontainersなどのライブラリを使用しています。フロントエンドの選定、ロギング、コントラクトテストは読者に委ねられています。
主な機能
- 014つの章を通して、1つのコードベースが単一プロジェクトからマイクロサービスへ進化する過程を解説
- 02どこでも同じアーキテクチャを適用するのではなく、複雑さに応じてモジュールを分離する方法を紹介
- 03Event Stormingを使ったドメイン分割と、境界づけられたコンテキストの設計を解説
- 04値オブジェクト、集約、ドメインイベントなどの戦術的DDDの概念を実演
- 05C#と.NET 9を使い、Minimal APIsとMediatRで構築
ユースケース
- モノリスからモジュラーモノリスやマイクロサービスへ移行するタイミングを学ぶ
- 既存の.NETコードベースにDDDを段階的に適用する方法を学ぶ
- 進化していく具体例をもとに、アーキテクチャに関する議論を準備する
- モジュール間にメッセージキューを導入する方法を検討する
使う前に知っておきたいこと
- フロントエンドは含まれていません。READMEでは、使用するフロントエンド技術の選択は読者に委ねられています。
- ロギングとコントラクトテストは読者に委ねられており、Serilog と Pact Net が候補として挙げられていますが、提供されていません。
収録されている特集
トピック
よくある質問
- evolutionary-architecture-by-example とは?
- .NET 9で構築されたフィットネススタジオのシステムが、シンプルなモノリスからモジュラーモノリス、マイクロサービス、戦術的DDDへと進化する過程を段階的に示すサンプルリポジトリです。 Evolutionary Architecture by Exampleは、.NETのソフトウェアアーキテクチャを学ぶためのリポジトリです。Fitnetという架空のフィットネススタジオアプリを題材に、4つの章を通して、整理された単一プロジェクトから始め、目的別のプロジェクトにモジュールを分離し、実際のメッセージキューを使って最初のマイクロサービスを切り出し、最後に値オブジェクト、集約、ドメインイベントなどの戦術的ドメイン駆動設計を適用するまでを追います。
- evolutionary-architecture-by-example は無料で使えますか?ライセンスは?
- evolutionary-architecture-by-example は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- evolutionary-architecture-by-example は今もメンテナンスされていますか?
- 活発にメンテナンス中。evolutionary-architecture-by-example の最終コミットは 2026年10月26日 です。
- evolutionary-architecture-by-example は何に使えますか?
- モノリスからモジュラーモノリスやマイクロサービスへ移行するタイミングを学ぶ 既存の.NETコードベースにDDDを段階的に適用する方法を学ぶ 進化していく具体例をもとに、アーキテクチャに関する議論を準備する モジュール間にメッセージキューを導入する方法を検討する
- evolutionary-architecture-by-example はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/evolutionary-architecture/evolutionary-architecture-by-example
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
DDD、モジュール化、マルチテナンシーを活用したエンタープライズソフトウェア開発向けの、ASP.NET Core上で動作する独自の方針を持つオープンソースアプリケーションフレームワーク。
チームやAIエージェント向けに、ドメイン、サービス、イベント、メッセージ、スキーマをカタログ化するソフトウェアアーキテクチャのドキュメントツール。
Clean Architecture、機能モジュール設計、Jetpack Compose、Gradle convention pluginsを紹介するKotlin製のAndroidリファレンスアプリです。
PlantUMLでソフトウェアアーキテクチャ図をテキストコードとして作成できる、C4モデル用マクロライブラリです。
AIコーディングツールがプロジェクトの構造や制約、変更範囲をHTMLマップにし、編集前に確認を求めるエージェントスキル。