Size: a a a

2020 March 31

EB

Eugene Burmakin in Random Ruby Chat
Читаю пост про ду нотейшен от 18 года
источник

EB

Eugene Burmakin in Random Ruby Chat
как не было нормальной документации, так два года спустя и нет)
источник

AD

Anton Davydov in Random Ruby Chat
Eugene Burmakin
@davydovanton dry-monads не упаковывают содержимое класса в транзакцию?
не понял
источник

EB

Eugene Burmakin in Random Ruby Chat
Транзакции
источник

EB

Eugene Burmakin in Random Ruby Chat
монады
источник

EB

Eugene Burmakin in Random Ruby Chat
Хочу понять, как мне это соединить)
источник

AD

Anton Davydov in Random Ruby Chat
никак
источник

AD

Anton Davydov in Random Ruby Chat
не используй транзакции и все
источник

AD

Anton Davydov in Random Ruby Chat
это короткий ответ
источник

EB

Eugene Burmakin in Random Ruby Chat
эм
источник

EB

Eugene Burmakin in Random Ruby Chat
а если мне надо обеспечить консистентность?
источник

AD

Anton Davydov in Random Ruby Chat
длинный ответ:

транзакции это монады для чейна степов, драй матчер для результата + логика выполнения степов. ду нотации делают все за тебя

вот чейн шагов, каждый шаг так же оборачиваться должен в монаду
https://dry-rb.org/gems/dry-monads/1.3/do-notation/

вместо драй матчера можно взять обычный кейс
https://dry-rb.org/gems/dry-monads/1.3/case-equality/

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

AD

Anton Davydov in Random Ruby Chat
Eugene Burmakin
а если мне надо обеспечить консистентность?
консистентность чего?
источник

AD

Anton Davydov in Random Ruby Chat
так, ладно, давай на примере
источник

EB

Eugene Burmakin in Random Ruby Chat
Смотри, я хочу обновлять два объекта в БД
источник

EB

Eugene Burmakin in Random Ruby Chat
Естесна если один зафейлился, я хочу откатить второй
источник

EB

Eugene Burmakin in Random Ruby Chat
выбор падает на транзакции
источник

EB

Eugene Burmakin in Random Ruby Chat
По идее наверное можно просто AR-транзакцию заюзать
источник

EB

Eugene Burmakin in Random Ruby Chat
и результат вернуть в монаде Success
источник

EB

Eugene Burmakin in Random Ruby Chat
верно?
источник