Size: a a a

2020 September 24

k

knopkod4v in symfony
хорошая картинка кстати, я даже начал понимать 🤔
источник

D

Dmitry in symfony
Sergey Protko
даже не в том зачем - что происходит со стэйтом. Если стэйт меняется последовательно и нет "других экторов в системе" то проблемы и не будет. Проблемы будут когда у тебя скажем 10 водителей подписываются на один заказ. Тебе это как-то надо удобно разруливать и не свихнуться.
есть паттерны которые легко решают эти вопросы, я не вижу проблемы в шаринге стейта типа статуса заказа для водителя
источник

SP

Sergey Protko in symfony
Maks
а что за сервис где такие картиночки делаешь?
lucidchart
источник

SP

Sergey Protko in symfony
Dmitry
есть паттерны которые легко решают эти вопросы, я не вижу проблемы в шаринге стейта типа статуса заказа для водителя
и один из таких паттернов - CQRS который позволяет это делать без шаринга стэйта. Юзкейс - например тебе надо не просто водителя выбрать, а из 10-ти подписавшихся выбрать того кто будет вести на основе факторов всяких. Например у тебя 6 водителей по дешевому тарифу а чел согласился на подороже и кто-то ближе кто-то дальше и где-то будет больше коммисия сервису и водителю и где-то меньше... словом тебе и решение может потребоваться принимат на основе кучи данных которые со временем меняются и начинают усложняться причинно следственные связи
источник

SP

Sergey Protko in symfony
ну то есть "без шаринга стэйта" - без "запросить стэйт у другого". следует разделять. И то и то можно воспринимать как шаринг стэйта вопрос как это во времени разруливается
источник

SP

Sergey Protko in symfony
но эту разницу можно убрать за счет утверждение что стэйт это то что меняется во времени. в случае сообщений - они не меняются)
источник

D

Dmitry in symfony
Sergey Protko
ну то есть "без шаринга стэйта" - без "запросить стэйт у другого". следует разделять. И то и то можно воспринимать как шаринг стэйта вопрос как это во времени разруливается
у кого другого ? заказа ? зачем ?
источник

SP

Sergey Protko in symfony
Dmitry
у кого другого ? заказа ? зачем ?
а у картинки зачем?
источник

D

Dmitry in symfony
Sergey Protko
а у картинки зачем?
картинку чтобы не процессить второй раз
источник

SP

Sergey Protko in symfony
короч - время это та штука которая в системах с collaborative domain порождает наибольшее количество сложности)
источник

SP

Sergey Protko in symfony
а кейс с картинкой - там нет колаборации
источник

D

Dmitry in symfony
а по поводу заказа я вообще не вижу проблем
источник

D

Dmitry in symfony
10 человек нажмут принять - кто первы вставл по условиям логики того и тапки - остальным отбой
источник

D

Dmitry in symfony
шарить стейт все равно придется - типа статуса
чтобы УИ как минимум отобразил нужные панельки на основе статуса заказа
источник

SP

Sergey Protko in symfony
Dmitry
10 человек нажмут принять - кто первы вставл по условиям логики того и тапки - остальным отбой
ты не забывай что они не совсем одновременно нажмут и тебе может быть выгодно выбрать не первого а 4-ого потому что денег больше можно будет взять и все в плюсе.
источник

SP

Sergey Protko in symfony
короч, вопрос масштабов и сложности домена. на картинках да конечно ничего не понятно
источник

D

Dmitry in symfony
Sergey Protko
ты не забывай что они не совсем одновременно нажмут и тебе может быть выгодно выбрать не первого а 4-ого потому что денег больше можно будет взять и все в плюсе.
"по условиям логики" - это не значит первый в очереди
логика скажет - LogicService->canThisDriverTakeAnOrder($order, $driver)
источник

SP

Sergey Protko in symfony
покрути короч в голове вопрос "что если события во времени происходят не совсем одновременно и ты не можешь гарантировать что если два чела нажаьи кнопку одновременно то именно в этом порядке оно придет на сервер" )
источник

SP

Sergey Protko in symfony
Dmitry
"по условиям логики" - это не значит первый в очереди
логика скажет - LogicService->canThisDriverTakeAnOrder($order, $driver)
и теперь заскейли это на миллион поездок)
источник

SP

Sergey Protko in symfony
еще у Уди был отличный пример с бронированием мест на стадионе
источник