Size: a a a

Software Design/Architecture/Zen

2021 July 29

AK

Aleh Kashnikau in Software Design/Architecture/Zen
так изначально и тесты падают?
источник

AI

Arthur Irgashev in Software Design/Architecture/Zen
я знаю одно: если не изолировать систему до мельчайших компонентов и не тестировать их изолированно, то сложность будет расти всегда. у тебя твои используемые модули начинают аффектить тестируемый, это добавляет сложности в разборе полётов и покрытием тестов

гораздо проще сосредоточится на написании теста для конкретного модуля, зная, что его зависимости всегда работают правильно
источник

ПГ

Павел Г. in Software Design/Architecture/Zen
Ну вот кстати, еще один момент, чтобы найти ошибку в коде. А так замокали, и типо ок.
источник

AK

Aleh Kashnikau in Software Design/Architecture/Zen
в каких случаях 50 тестов могут начать падать - если поменяли код, который они тестируют(в обсуждении чистая функция) или же поменялись ами тесты
источник

AI

Arthur Irgashev in Software Design/Architecture/Zen
нет, это не поможет найти ошибку. и далеко не всегда будет понятно, где и из-за чего что-то упало
источник

ПГ

Павел Г. in Software Design/Architecture/Zen
Ок. Я не буду спорить, я понимаю вашу позицию и причины. Так же понимаю в этом вопросе свою и что обе имеют право на жизнь вполе
источник

k

knopkod4v in Software Design/Architecture/Zen
а как баланс влияет на доставку? По идее тут достаточно доставке слушать событие "заказ оплачен" и может ещё какие-то статические подробности (типа в такой-то момент оплачен, номер заказа)
источник

NF

Nikita Fedorov in Software Design/Architecture/Zen
вот оно
источник

ПГ

Павел Г. in Software Design/Architecture/Zen
На саму никак, он влияет можно ли отдать в доставку.
источник

k

knopkod4v in Software Design/Architecture/Zen
как? Товар же уже оплачен
источник

ПГ

Павел Г. in Software Design/Architecture/Zen
Например у меня нет ) пост оплата
источник

ПГ

Павел Г. in Software Design/Architecture/Zen
Спасибо.  Но о чем это говорит? Что у нас есть инверсия зависимости изнутри наружу. Только доменный сервис тут причем не пойму к сожалению...
источник

ПГ

Павел Г. in Software Design/Architecture/Zen
Это конкретная функция а не абстрактная
источник

NF

Nikita Fedorov in Software Design/Architecture/Zen
вот, это была 131, там есть пояснение, хотя из диаграммы должно быть ясно, и когда мы говорим что домен в центре, это значит что домен наиболее устойчивый к изменениям
источник

ПГ

Павел Г. in Software Design/Architecture/Zen
во во во я про это
источник

k

knopkod4v in Software Design/Architecture/Zen
ну всё равно будет по идее какая-то транзакция, которую будет тыкать человек, соглашаясь, что мол "да, я готов заплатить столько-то" - это и будет твоя "оплата".
А если вы работаете по постоплате - как бизнес вообще уверен, что ему заплатят?
источник

AI

Arthur Irgashev in Software Design/Architecture/Zen
как по мне - тут вообще происходит смешивание нескольких баунд-контекстов, эту логику не нужно стараться засунуть в какой-то агрегат
источник

AI

Arthur Irgashev in Software Design/Architecture/Zen
у тебя есть чёткая бл - процессинг ордера. происходит процессинг, выполняется пре-валидация, процессинг, пост-валидация,  публикуется ивент об успешном процессинге, ставится, например, какой-то джоб для назначения ордера курьеру (или это всё выполняется сразу)

и всё это в рамках разных баунд-контекстов
источник

NF

Nikita Fedorov in Software Design/Architecture/Zen
при том что если вы делаете прямой вызов доменного сервиса из app сервиса(юзкейса), то доменный сервис мение устойчив к изменениям чем app, чего быть не должно
источник

AI

Arthur Irgashev in Software Design/Architecture/Zen
> это значит что домен наиболее устойчивый к изменениям
какое-то странное следствие
источник