Repolode
evolutionary-architecture

evolutionary-architecture/evolutionary-architecture-by-example

Пошаговый пример на .NET 9, показывающий, как система фитнес-студии развивается от простого монолита до модульного монолита, микросервисов и тактического DDD.

Звёзды
3,577
Форки
550
Открытые issues
15
Последний коммит
12 дней назад

Что это?

Evolutionary Architecture by Example — учебный репозиторий об архитектуре ПО на .NET. В нём на примере вымышленного приложения фитнес-студии Fitnet показаны четыре этапа: сначала приложение представляет собой один хорошо структурированный проект, затем модули выносятся в отдельные проекты, после этого выделяется первый микросервис с настоящей очередью сообщений, а в заключительной главе применяются тактические практики Domain-Driven Design, например объекты-значения, агрегаты и доменные события.

Репозиторий охватывает и стратегическую сторону работы: разбиение предметной области на подобласти с помощью Event Storming и Domain Storytelling, определение ограниченных контекстов и выбор подходящего уровня архитектурной проработки для каждого модуля. Для каждой главы есть собственное руководство и интерактивные диаграммы, а архитектурные решения фиксируются в журнале.

Код написан на C# для .NET 9 с использованием minimal APIs и таких библиотек, как MediatR, Dapper, Entity Framework, FluentValidation, .NET Aspire и Testcontainers. Выбор frontend-технологий, логирование и контрактное тестирование оставлены на усмотрение читателя.

Ключевые возможности

  • 01На протяжении четырёх глав показано, как одна кодовая база проходит путь от единственного проекта до микросервисов
  • 02Показано, как разделять модули с учётом их сложности, а не применять везде одну и ту же архитектуру
  • 03Рассматриваются декомпозиция предметной области с помощью Event Storming и проектирование ограниченных контекстов
  • 04Показаны тактические концепции DDD, включая объекты-значения, агрегаты и доменные события
  • 05Проект написан на C# для .NET 9 и использует minimal APIs и MediatR

Сценарии использования

  • Разобраться, когда стоит переходить от монолита к модульному монолиту или микросервисам
  • Изучить, как постепенно внедрять DDD в существующую кодовую базу на .NET
  • Подготовить обсуждение архитектуры на конкретном примере, который развивается по мере работы
  • Изучить, как добавить очередь сообщений для взаимодействия между модулями

Что важно знать

  • Фронтенд не включён; 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 показаны четыре этапа: сначала приложение представляет собой один хорошо структурированный проект, затем модули выносятся в отдельные проекты, после этого выделяется первый микросервис с настоящей очередью сообщений, а в заключительной главе применяются тактические практики Domain-Driven Design, например объекты-значения, агрегаты и доменные события.
evolutionary-architecture-by-example можно использовать бесплатно? Какая у него лицензия?
evolutionary-architecture-by-example распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
evolutionary-architecture-by-example всё ещё поддерживается?
Активно поддерживается. Последний коммит в evolutionary-architecture-by-example — 26 окт. 2026 г..
Для чего можно использовать evolutionary-architecture-by-example?
Разобраться, когда стоит переходить от монолита к модульному монолиту или микросервисам Изучить, как постепенно внедрять DDD в существующую кодовую базу на .NET Подготовить обсуждение архитектуры на конкретном примере, который развивается по мере работы Изучить, как добавить очередь сообщений для взаимодействия между модулями
Где скачать evolutionary-architecture-by-example?
Исходный код и инструкции по установке — на GitHub: https://github.com/evolutionary-architecture/evolutionary-architecture-by-example

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Ориентированный на определённый подход фреймворк приложений с открытым исходным кодом на ASP.NET Core для создания корпоративного ПО с DDD, модульностью и мультитенантностью.

14,5 тыс.+6 за неделю3,7 тыс.C#LGPL-3.0Активно поддерживаетсяОбновлён вчера

Навык для AI-инструментов разработки: строит HTML-карту архитектуры, ограничений и границ изменений проекта и ждёт подтверждения перед редактированием кода.

678+11 за неделю72TypeScriptMITАктивно поддерживаетсяОбновлён 4 дня назад