Шаблон решения с Clean Architecture для ASP.NET Core и отдельными проектами Core, Use Cases, Infrastructure и Web.
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, но они не включены.
В подборках
Темы
Частые вопросы
- Что такое 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, модульностью и мультитенантностью.
Инструмент для документирования архитектуры ПО: каталог доменов, сервисов, событий, сообщений и схем для команд и AI-агентов.
Пример Android-приложения на Kotlin, демонстрирующий Clean Architecture, модульную структуру, Jetpack Compose и convention plugins для Gradle.
Библиотека макросов модели C4 для PlantUML, позволяющая описывать диаграммы архитектуры ПО обычным текстом.
Навык для AI-инструментов разработки: строит HTML-карту архитектуры, ограничений и границ изменений проекта и ждёт подтверждения перед редактированием кода.