Перейти к основному содержимому

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.

Ссылки