Size: a a a

Software Design/Architecture/Zen

2020 December 28

КГ

Константин Грачев... in Software Design/Architecture/Zen
Sergey Protko
а да еще важный момент - лучше сразу договориться о разделении ивентов - мол просто доменные ивенты и "интеграционные ивенты", которые мы выпускаем за пределы модуля для интеграции фич. В такие ивенты желательно поменьше данных класть - мол "заказ подтвержден", может быть время когда и айдишка заказа. Кто кем и т.д. - не ваше дело. Если вам любопытно - сходите по api и заберите.
То есть в простых доменнах ивентах можно себя не ограничивать в передаче стейта?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Константин Грачев
То есть в простых доменнах ивентах можно себя не ограничивать в передаче стейта?
Не, лучше ограничивать
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Проблем хлебнешь иначе. Мой поинт был больше про декомпозицию стэйта и разграничения на интеграционные ивенты и т.д
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Temporal coupling как бы будет вне зависимости от сложности проекта. Риски могут быть ниже но боль отладки всеравно будет
источник

КГ

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

КГ

Константин Грачев... in Software Design/Architecture/Zen
Я стараюсь везде только id передавать в ивентах, но как результат все хендлеры зависят от репозиториев для доставания чего либо по этим id
источник

КГ

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

SP

Sergey Protko in Software Design/Architecture/Zen
Константин Грачев
Про передачу результата ответа от внешней апи не очень понял.
Почему сохранять в базу лучше в другом хендлере?
Уменьшение зависимостей каждого из хендлера, срп?
Ты пишешь в два хранилища и не можешь гарантировать атомарность операции
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Константин Грачев
Я стараюсь везде только id передавать в ивентах, но как результат все хендлеры зависят от репозиториев для доставания чего либо по этим id
Сделай мидлвары)
источник

k

knopkod4v in Software Design/Architecture/Zen
Константин Грачев
Я стараюсь везде только id передавать в ивентах, но как результат все хендлеры зависят от репозиториев для доставания чего либо по этим id
мне кажется тут зависит от того, что  делать с полученными данными.
Если вытащить данные того объекта из которого прилетел ивент и будешь пытаться сохранить этот объект - это выглядит как срань какая-то
Если вытащить те же данные для интеграции с внешней системой или фронтендом (что в общем одно и то же) - это ок.
источник

КГ

Константин Грачев... in Software Design/Architecture/Zen
Sergey Protko
Ты пишешь в два хранилища и не можешь гарантировать атомарность операции
Первое это внешнее которое?)
источник

КГ

Константин Грачев... in Software Design/Architecture/Zen
Sergey Protko
Сделай мидлвары)
Да сделать изи, руки пока не доходят, и думаю подожду переезда на 8ку, чтобы атрибуты юзать, а не аннотации
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Константин Грачев
Первое это внешнее которое?)
Тип того. Ну мол если ты читаешь и пишешь в базу результат то ок как бы
источник

КГ

Константин Грачев... in Software Design/Architecture/Zen
Sergey Protko
Тип того. Ну мол если ты читаешь и пишешь в базу результат то ок как бы
Разные кейсы.
В одном читаю комментарии с яндекс.карт, в другом смс отправляю
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Константин Грачев
Разные кейсы.
В одном читаю комментарии с яндекс.карт, в другом смс отправляю
Ну тут нет зависимостей вроде..
источник

КГ

Константин Грачев... in Software Design/Architecture/Zen
Sergey Protko
Ну тут нет зависимостей вроде..
После отправки смс в базу пишется try с ответом шлюза
источник

КГ

Константин Грачев... in Software Design/Architecture/Zen
источник

КГ

Константин Грачев... in Software Design/Architecture/Zen
Тут правда всё совсем на коленке собрано, мыслей по рефаткорингу много, но всё никак
источник

КГ

Константин Грачев... in Software Design/Architecture/Zen
Конкретно тут хотелось бы вместо 44 строки сразу получить сущность аргументом, а последние 3 строки убрать в метод переданной сущности. Сразу минус зависимость
источник

КГ

Константин Грачев... in Software Design/Architecture/Zen
ля чот я от темы ушел. Вопрос бы про передачу результата от апи в событии. Я так и не понял в чём смысл
источник