ADR-0012: Application Feature Slices
Статус
Accepted
Контекст
Root-level папки Commands, Queries, Validators, Handlers быстро разрывают один use case на несколько мест и усложняют code review, тестирование и навигацию.
Решение
Application проекты используют feature-slice структуру:
Pin.<Service>.Application/
<FeatureGroup>/
<Feature>/
<Feature>Command.cs
<Feature>CommandHandler.cs
<Feature>CommandResult.cs
<Feature>CommandValidator.cs
Для query используются Query, QueryHandler, QueryResult, QueryValidator. Создаются только нужные файлы.
Последствия
- Один use case читается из одной папки.
- Tests зеркалируют feature slice.
- Architecture tests запрещают root-level
Commands,Queries,Validators,Handlers.