Size: a a a

Saint P Ruby Community

2020 February 03

IM

Igor Morozov in Saint P Ruby Community
На уровне выше если ты игнорируешь, то ты делаешь это явно же
источник

AG

Alex G in Saint P Ruby Community
ну.. смотря как пишешь. если сам, то, наверное, да.
а если dry-transaction, например, то нет
источник

AG

Alex G in Saint P Ruby Community
я как раз буду переписывать с dry-t (раз уж он уже давно depricated) и проверю. Пока не проверял :)
источник

AG

Alex G in Saint P Ruby Community
по-моему, самый сильный аргумент в статье про исключения - про многопоточность
источник

IM

Igor Morozov in Saint P Ruby Community
Alex G
ну.. смотря как пишешь. если сам, то, наверное, да.
а если dry-transaction, например, то нет
А что в транзакции такого особенного? Те же монатки под капотом
источник

AG

Alex G in Saint P Ruby Community
failure проходят насквозь из глубины
источник

IM

Igor Morozov in Saint P Ruby Community
Это выглядит так, или работает так?
источник

AG

Alex G in Saint P Ruby Community
Igor Morozov
Это выглядит так, или работает так?
не понял вопроса
источник

IM

Igor Morozov in Saint P Ruby Community
Можно реализовать так, что фейлур вполне себе проходит по цепочке, и там вызывается .bind и все такое

А можно реально как в goto взять и прыгнуть

Но выглядеть это будет одинаково - будто тебе прилетел фейлур откуда-то из глубины
источник

AG

Alex G in Saint P Ruby Community
конечно, можно вручную вызывать что-то и обрабатывать результат.

   def foo(input)
     # res = do_something_monadic
     # handle res

Но есть и возможность (одна из главных фич) описывать операции декларативно. Т.е. сказать

step :foo, with: 'foo.from.container'
step :bar

В этом случае результат foo пойдет выше.
источник

AG

Alex G in Saint P Ruby Community
мне кажется, мы в какие-то детали углубляемся.
Похоже, ты не работал с dry-transaction, а я не писал вручную сервисов на монадах
источник

AG

Alex G in Saint P Ruby Community
трудно будет продолжать )
источник

AG

Alex G in Saint P Ruby Community
можно посмотреть примеры вот тут.
https://dry-rb.org/gems/dry-transaction/0.13/basic-usage/
источник

IM

Igor Morozov in Saint P Ruby Community
Alex G
мне кажется, мы в какие-то детали углубляемся.
Похоже, ты не работал с dry-transaction, а я не писал вручную сервисов на монадах
Работал. Мне не юзедж, мне механика работы интересна
источник

AG

Alex G in Saint P Ruby Community
в частности тут заметно, что на выходе можно проверить разные "типы" failure или поймать все
источник

AG

Alex G in Saint P Ruby Community
не понял про механику. ты имеешь в виду, "перепаковывает" ли оно проходящие failure?
источник

IM

Igor Morozov in Saint P Ruby Community
Alex G
failure проходят насквозь из глубины
Вот это утверждение непонятно откуда
источник

IM

Igor Morozov in Saint P Ruby Community
Там оно не в таком виде реализовано, вроде как
источник

AG

Alex G in Saint P Ruby Community
ну хз, может быть я не так как-то выражаюсь.. кажется пришло время примеров
источник

AD

Anton Davydov in Saint P Ruby Community
Alex G
в частности тут заметно, что на выходе можно проверить разные "типы" failure или поймать все
так у тебя ду нотация позволяет сделать 1 в 1 похожую логику
источник