Repolode
evolutionary-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 が候補として挙げられていますが、提供されていません。

収録されている特集

トピック

#software-architecture#domain-driven-design#modular-monolith#microservices#dotnet#csharp#clean-architecture#architecture#architecture-components#architecture-decision-records

よくある質問

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 の数値は毎日更新されます。

関連プロジェクト