Comments 1
На мой взгляд будет очень тяжело сохранять границы между слоями/типами Общее ядо и Расширения языка. Конечно же это вопрос договоренностей внутри команд(ы), но как мне кажется Расширения языка достаточно быстро дадут течь или превратятся в Common/Utils.
Если у кого то есть реальный опыт такого разделения кода, очень хотелось бы услышать комменты.
В одном из своих проектов я использую следующую структуру пакетов: \Acme\<Context Code>\Domain
, \Acme\<Context Code>\Application
, \Acme\<Context Code>\Infrastructure
.
Соответственно имеется "общее ядро" (\Acme\Core) в виде отдельного контекста которое содержит необходимый код, сгруппированный по слоям Domain, Application, Infrastructure. На пример, слой Domain содержит:
- Супертип доменного слоя
- Базовые классы исключений для доменного слоя
- Базовые классы событий домена
- и т.д.
Я еще веду эксперименты над структурой пакетов. Но переход к указанной выше структуре в значительной степени структурировал код.
Больше, чем концентрические слои