Size: a a a

Software Design/Architecture/Zen

2021 May 22

SP

Sergey Protko in Software Design/Architecture/Zen
ой короч че я, просто херовые аналогии
источник

k

knopkod4v in Software Design/Architecture/Zen
https://www.youtube.com/watch?v=-iuMjjKQnhg
круто, Уди как обычно раскладывает по полочкам и даже даёт намёки когда имеет смысл ES юзать (спойлер - в 1 - 5% случаев)
интересно как можно делать code as data domains с технической точки зрения 🤔
источник

SP

Sergey Protko in Software Design/Architecture/Zen
вот тут кто-то порадуется
источник

SP

Sergey Protko in Software Design/Architecture/Zen
источник

V

Viktor in Software Design/Architecture/Zen
Добрый вечер. Поделитесь опытом, кто как использует доменные сервисы. Пихаете его как зависимость в агрегаты или оставляете на уровне сервиса приложения?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Их не оч много обычно и часто подсовываю как аргументы в методы агрегатов. В целом основная мысль в том что они редко нужны, а потому лучше на конкретных примерах когда они тебе понадобились.

Главное что бы зависимостей было меньше
источник

V

Viktor in Software Design/Architecture/Zen
Ну я вот каждый раз натыкаюсь на статью и кто хочет так и делает. Кто-то делает агрегат без зависимостей, а работает с доменным сервисом внутри юзкейса. Кто-то подсовывает, как вы советуете.
источник

AN

Allan Nettzan in Software Design/Architecture/Zen
Чем аргументировано подсосывание сервиса в агрегат или к примеру эвент стора в агрегат?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Я повторюсь - если тебе чего надо - передаешь в аргументах методов. Конструктор агрегата не должен ни от чего лишнего зависеть
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Более того - лучше найти способ обойтись без этих доменных сервисов
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Ивент стопа в агрегат - это явно чёт не так пошло
источник

DP

Dimitry Polonskiy in Software Design/Architecture/Zen
Есть заявка.
У заявки должен быть автор всегда.

Нужно ли делать IBusinessRule для валидация того передан ли автор в метод агрегата?
источник

DP

Dimitry Polonskiy in Software Design/Architecture/Zen
Как бы текст заявки я валидирую...
Ну по логике вещей и автор должен быть...
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Просто передавай айдищник, зачем ещё что-то и зачем сервисы
источник

DP

Dimitry Polonskiy in Software Design/Architecture/Zen
Нет.
Сервисов нет.

Я и передаю айдишник автора.
Просто он же может быть NULL.
источник

DP

Dimitry Polonskiy in Software Design/Architecture/Zen
Тип внутри метода агрегата CheckRule( АВТОР_ДОЛЖЕН_БЫТЬ_RULE )
источник

DP

Dimitry Polonskiy in Software Design/Architecture/Zen
Я могу это провалидировать и перед изменением состояния агрегата
источник

SP

Sergey Protko in Software Design/Architecture/Zen
По поводу "текста заявки" - а есть прям строгие бизнес правила? Агрегату не похеру? Не смешиваешь ли ты валидацию данных входящих и бизнес правила?
источник

DP

Dimitry Polonskiy in Software Design/Architecture/Zen
Вот про второе и спрашиваю
источник

SP

Sergey Protko in Software Design/Architecture/Zen
И что этот check rule проверяет?
источник