@oop_ru

Страница 547 из 785
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
не стал делать слишком абстрактную штуку

сделал более конкретную

верней от них не отказался просто они стали чуть другими

там сложность в другом была это на долго так что я лучше промолчу если не спрашивают

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
а

ок ок

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

CQS же
дада

я понял

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
ну в моём маленьком мире любителей обмазаться всякими басами, да

но, опять-таки, что мешает хранить стеит и по твоей логике спросить ещё разок?)

Maksim
05.03.2018
20:44:24
pull вместо push?
ну тип того

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

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

Maksim
05.03.2018
20:46:19
так это вообще не я накинул изначально )
не обращай внимания) у меня просто триггер на саги)

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

Maksim
05.03.2018
20:46:59
как всегда ответ получается: делай как хочешь, все равно где-то наебешься
ну на самом деле штука довольно мощная. И в то же время простая

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
Киньте ссылку
http://microservices.io/patterns/data/saga.html

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
До 15 суток вроде
меньше обычно

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
ну в конечном счёте объяснять сие юзерам - не задача программиста) так что хз чего ты паришься)

Страница 547 из 785