
da horsie
05.03.2018
20:21:50
и иногда получается красивый выразительый код

Evgeniy
05.03.2018
20:21:59
задача этого результата отменить что то в бд и тд
может быть и sleep можно и без sleep сделать
но я потом отказался от этих объектов

Google

Evgeniy
05.03.2018
20:23:06
не стал делать слишком абстрактную штуку
сделал более конкретную
верней от них не отказался просто они стали чуть другими
там сложность в другом была это на долго так что я лучше промолчу если не спрашивают

Sergey
05.03.2018
20:25:08

Maksim
05.03.2018
20:33:40
и объект результата не нужен)

da horsie
05.03.2018
20:33:42

Maksim
05.03.2018
20:33:53

Sergey
05.03.2018
20:33:54
почему?

da horsie
05.03.2018
20:33:55
мы тут про более мелкие вещи говорим, как мне кажется
но смысл да, такой

Maksim
05.03.2018
20:34:16
если не обмазываться всякими басами, довольно простая и лёгкая

Sergey
05.03.2018
20:34:33
если у тебя все маленькое - тебе не нужен отдельный объект. А если у тебя бизнес транзакция уже подразумевает некий процесс - то почему бы и не саги?

Google

Sergey
05.03.2018
20:35:02
вот да, Саги это не сложно, во всяком случае не с технической точки зрения.

da horsie
05.03.2018
20:35:57
короче идея - делать последовательность действий в зааисимости от результата предыдущего действия, инкапсулировать эту логику где-то. почему бы и не в объекте "резальтат операции"

Maksim
05.03.2018
20:36:23
определение саги ж в чистом виде

da horsie
05.03.2018
20:36:49
да хоть что

Maksim
05.03.2018
20:36:50
ток объект результата там лишний по сути)

da horsie
05.03.2018
20:37:18
пусть саги. очередное имя для старой идеи
убираем "результат", оставляем "операция"

Maksim
05.03.2018
20:39:05
ну сагу проще всего представить как обычную транзакцию) либо всё ок, либо возвращаем взад всё, что изменили)

da horsie
05.03.2018
20:39:35
и нам этот результат надо фронту отдать

Maksim
05.03.2018
20:39:53

da horsie
05.03.2018
20:40:00
а
ок ок

Sergey
05.03.2018
20:40:10

da horsie
05.03.2018
20:40:17
не отдавать ничего фронту, пусть он спросит еще раз
я понял

Maksim
05.03.2018
20:40:33

Sergey
05.03.2018
20:40:53
не ну сокеты еще подрубать... зачем

Google

Sergey
05.03.2018
20:41:01
хотя можно

Maksim
05.03.2018
20:41:19
чорд) не угадал) мне казалось, что ты за неё накинешь) но, видимо, устал уже)

da horsie
05.03.2018
20:41:22
а если фронту надо знать ПОЧЕМУ не получилось, как быть?

Maksim
05.03.2018
20:41:38
событие "ни шмагла")

da horsie
05.03.2018
20:42:09

Maksim
05.03.2018
20:42:45
ну в моём маленьком мире любителей обмазаться всякими басами, да
но, опять-таки, что мешает хранить стеит и по твоей логике спросить ещё разок?)

da horsie
05.03.2018
20:44:14

Maksim
05.03.2018
20:44:24

da horsie
05.03.2018
20:44:55
ну люди ж почему-то от этого отказываются. чтоб нагрузку снизить, например

Maksim
05.03.2018
20:45:29
блин) тебе шашечки, или ехать?) конечный смысл не особо зависит от реализации)
хочешь стильно и молодёжно - центрифуга твой выбор)

da horsie
05.03.2018
20:46:03

Maksim
05.03.2018
20:46:19

da horsie
05.03.2018
20:46:31
как всегда ответ получается: делай как хочешь, все равно где-то наебешься

Maksim
05.03.2018
20:46:59

Evgeniy
05.03.2018
20:47:10

Maksim
05.03.2018
20:47:14
а уж на сколько ты упорешься в реализации - детали

Evgeniy
05.03.2018
20:47:36
Нигде не видел чтобы его юзали
Может просто плохой опыт у меня

Google

Evgeniy
05.03.2018
20:48:48
Но иногда довольно сложно поддерживать транзакционность

Maksim
05.03.2018
20:49:21
в тех же сагах у тебя есть 2 варианты работы:
1) ты можешь эмулировать транзакцию
2) ты можешь не изменять реальные данные до самого конца, а если всё ок по цепочке - выполнить то, что хотел.
в первом случае ты эмулируешь транзакционность, во втором - некое подобие агрегированной операции. Второй вариант проще

Evgeniy
05.03.2018
20:49:31
Как например быть если после блокировки денег у пользователя их разблокируют через 15 дней?

Maksim
05.03.2018
20:49:42
если ещё проще, то сага - блок-схема.

Evgeniy
05.03.2018
20:49:56
Не юзал саги

Maksim
05.03.2018
20:50:02
шедьюлер)

Evgeniy
05.03.2018
20:50:02
Киньте ссылку
Ото кажется я их переизобретаю у нас на проекте
У нас есть много фоновых задач в том числе и типов этих задач

Maksim
05.03.2018
20:51:23

Evgeniy
05.03.2018
20:51:41
И они сильно зависят от кучи внешних сервисов апи которых могут глючить
Спс

Sergey
05.03.2018
20:52:01
все идея в компенсации изменений
ну то есть ты попросил агрегатор заблокировать часть средств на какой-то промежуток времени
и деньги взяли и разблокировались - мне кажется это вопрос не транзакционности

Evgeniy
05.03.2018
20:53:05
Так hold и разблокировка холда может занимать время

Maksim
05.03.2018
20:53:06
ну там придёт событие, что холд снят на колбек урл

Evgeniy
05.03.2018
20:53:17
До 15 суток вроде

Maksim
05.03.2018
20:54:11

Google

Evgeniy
05.03.2018
20:54:18
Так пользователю это сложно объяснить

Maksim
05.03.2018
20:55:23
но есть и обратная сторонав медали: то, что холд снят не означает, что бабло вернулось
если быть точнее, анлокнулось.
так что сия затея кодом не покрывается. По крайней мере я таких вариантов не видел. Хотя и кой чего понимаю в платёжках

Evgeniy
05.03.2018
20:58:38
Ну да согласен
Просто юзверям сложно объяснить
Они обычно смотрят банке
А банк операции процессинга с задержкой накатывает

Maksim
05.03.2018
20:59:32
ну в конечном счёте объяснять сие юзерам - не задача программиста) так что хз чего ты паришься)