Size: a a a

Software Design/Architecture/Zen

2021 July 29

AI

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

ПГ

Павел Г. in Software Design/Architecture/Zen
Пользователь заказывает товар. У него на балансе -1000. Товар проходит стадиб производства и лежит на складе. Ему звонят (это тема конечно странная на честном слове) - мол, дорогой, пополни баланс
источник

ПГ

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

AI

Arthur Irgashev in Software Design/Architecture/Zen
типа того. ну или там под разные сущности делать свои вьюшки, как вариант
источник

ПГ

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

NF

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

ПГ

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

ПГ

Павел Г. in Software Design/Architecture/Zen
Ну контексты +- минус мне понятны, а вот что они на одни таблички ссылаться могут - не думал
источник

NF

Nikita Fedorov in Software Design/Architecture/Zen
истинно так, мокать всё не надо
источник

AI

Arthur Irgashev in Software Design/Architecture/Zen
ит депендс. иногда могут, иногда не могут, иногда могут использовать вьюхи от одной таблицы
источник

AI

Arthur Irgashev in Software Design/Architecture/Zen
тут, думаю, можно и на одну сделать ссылку
источник

k

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

ПГ

Павел Г. in Software Design/Architecture/Zen
Можно, согласен.  Как вариант, почему бы и нет, спасибо. Другое дело что это немного делает разрыв, так как (хоть и мало вероятно), но чисто в теории можно товар сделать и непополаченным снова, а ивент еще не обработался, это надо как-то тоже учесть. Т.е. пока это хоть и красиво, но повышает сложность отчасти. Т.е. таких флагов уже минимум 2 - оплата заказа и статус производства.
источник

ПГ

Павел Г. in Software Design/Architecture/Zen
Зато соблюдены границы контекстов, это да, плюс. Меньше выглядит как говнокод)
источник

k

knopkod4v in Software Design/Architecture/Zen
сложность это всё конечно повышает. Одна только инфраструктура для того чтобы ивенты надёжно летали чего стоит.
Что касается того, что заказ может стать неоплаченным - это надо отдельно разбираться почему и зачем так. Вообще заказ не может стать неоплаченным - покупатель оплатил, траназкция была. Дальше может делать отмену заказа или возврат товара - но это уже продолжение процесса или процессов, в общем тут отдельно думать надо
источник

ПГ

Павел Г. in Software Design/Architecture/Zen
Есть кейс, что менеджер может увеличить стоймость заказа постфактум) зачеми  почему - хз, но есть
источник

ПГ

Павел Г. in Software Design/Architecture/Zen
@knopkod4v спасибо еще раз за развернутый пример варианта решения задачи 👍
источник

NF

Nikita Fedorov in Software Design/Architecture/Zen
я не эксперт, но на сколько я знаю это не очень законно после оплаты менять цену
источник

ПГ

Павел Г. in Software Design/Architecture/Zen
Думаю да...
источник

ПГ

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