Size: a a a

Software Design/Architecture/Zen

2021 April 08

A

Adv0cat in Software Design/Architecture/Zen
В момент резервирования товара проверяется наличие на складе, и если все ок, то резервируем, а есои нет, то оповещаем юзера о том, какие товары не доступны, попутно выкидывая с корзины.
Важная штука в этом всем - резервирование
источник

AD

Alexander Deider in Software Design/Architecture/Zen
Выкидывать не надо, к моменту, когда юзер зайдёт в корзину, может прийти новая партия) Пусть покупает.
источник

A

Adv0cat in Software Design/Architecture/Zen
Вечером деньги, а днем стулья?)
источник

F

Forestoff in Software Design/Architecture/Zen
Благодарю за ответы, а если немного по-другому ситуацию повернуть.
Товар есть в меню сейчас. Мы его добавляем, но через время он удаляется из меню (помечается deleted_at в базе, если это важно). Т.е. мы его как-то должны пометить, что он удален. Причем в корзину добавили доступный, а через время он "недоступен"
источник

AN

Alexander Nazarov in Software Design/Architecture/Zen
Ну пусть в корзине лежит то что он положил, просто перед оформлением проверяйте еще раз, есть ли такой товар на складе или нет.
источник

F

Forestoff in Software Design/Architecture/Zen
Просто у меня сейчас в голове крутится, что объекты должны быть "always valid". Но тут мы к инварианту приходим не путем каких-то бизнес правил или действий, а из-за чего-то другого, в данном случае из-за того, что его кто-то удалил.
источник

VS

Vladimir Smirnov in Software Design/Architecture/Zen
источник

AD

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

AL

Anton Lakotka in Software Design/Architecture/Zen
источник

A

Adv0cat in Software Design/Architecture/Zen
Такое на уровне базы форынкеями обычно запрещается))
источник

F

Forestoff in Software Design/Architecture/Zen
Значит ли, что у нас в один момент лежит 2 типа товаров: доступные и "удаленные"?
источник

AL

Anton Lakotka in Software Design/Architecture/Zen
@forestoff ни слушай никого здесь. посмотри те два доклада
источник

F

Forestoff in Software Design/Architecture/Zen
второй смотрел, первый только включил, спасибо
источник

AL

Anton Lakotka in Software Design/Architecture/Zen
это классическая пробелема где рассказывают как решать современными архитектурными подходами
источник

AN

Alexander Nazarov in Software Design/Architecture/Zen
да. Пусть все что пользователь положил в корзину остается в таком виде как он положил. Просто в какой то момент нужно будет дополнительно проверить эту корзину на актуальность.
источник

A

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

AL

Anton Lakotka in Software Design/Architecture/Zen
Адвоката особенно. Он слишком стар
источник

F

Forestoff in Software Design/Architecture/Zen
Как этот кейс называется, по которому гуглить можно?
"Validating historical data" - самое подходящее, как мне кажется
Находил только 3-4 статьи из которых эти 2 самые приближенные.
https://enterprisecraftsmanship.com/posts/always-valid-domain-model/
https://enterprisecraftsmanship.com/posts/strengthening-requirements-pre-existing-data/
источник

A

Adv0cat in Software Design/Architecture/Zen
Как вроде бы про резервирование прям перед самой покупкой я не прав…
источник

AN

Alexander Nazarov in Software Design/Architecture/Zen
почему не прав? логично же вроде
источник