Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Поэтому я категорически против навязывания архитектуры в таких статях.
Управление сложностью — самый важный технический аспект разработки ПО. По-моему, управление сложностью настолько важно, что оно должно быть Главным Техническим Императивом Разработки ПО
— Допустим RegisterUserCommand должен создавать пользователя и отправлять ему на почту письмо. Нормально ли реализовывать это требование прямо в обработчике команды, или нужно создавать ещё событие UserRegisteredEvent?
Не глупо ли создавать события и их обработчики в одном слое, а связывать их в другом?
Где валидировать сущности которые зависят от данных? Например нужно проверять E-Mail на уникальность.
Мне кажется или бизнес правила разносятся по всему коду?
Как потом с такой кашей работать?
Не слова о транзакциях. Не должна ли команда оборачиваться в транзакцию?
Гексагональная архитектура