Size: a a a

Saint P Ruby Community

2020 February 03

AG

Alex G in Saint P Ruby Community
@dstepanenko ну вот и о чем нам с @dstepanenko теперь спорить? )
источник

AG

Alex G in Saint P Ruby Community
Статья супер! Очень хорошо все по полочкам разложил.
Жаль только, что фразы типа "легко забыть обработать ошибку" и "работает в простых" случаях могут нивелировать любые аргументы.
Потому что непонятно, где граница "простых" случаев и почему при любом другом подходе нельзя о чем-то забыть.
источник

IM

Igor Morozov in Saint P Ruby Community
Тут, кстати, круто то, что в том же сорбете есть проверка на полноту, но только для типов — для исключений нет. Т.е. в плане статического анализа исключения тут проигрывают
источник

IM

Igor Morozov in Saint P Ruby Community
только вот Failure(:foo) и Failure(:bar) будут одним типом, по идее. Там (пока?) нельзя суммы из примитивов делать

https://sorbet.org/docs/union-types#enumerations
источник

AG

Alex G in Saint P Ruby Community
я сейчас представляю себе код в do-notation и ROP. Мне кажется, что работа с таким кодом _очень_ похожа на  работу с исключениями
источник

AG

Alex G in Saint P Ruby Community
да, именно из-за того, что может быть много разных Failure
источник

IM

Igor Morozov in Saint P Ruby Community
там ведь есть серьёзное отличие, когда у тебя цепочка из пяти вызовов, и каждый может вернуть Failure, а тебе нужно как-то сразу обработать и не прерывать вызов
источник

IM

Igor Morozov in Saint P Ruby Community
правда, отличие в том, что там Do особо и не нужен, но это нюанс
источник

AG

Alex G in Saint P Ruby Community
вот именно, что с Do можно не обрабатывать
источник

AG

Alex G in Saint P Ruby Community
т.е. можно обработать где-то "на выходе" "в самом верху"
источник

IM

Igor Morozov in Saint P Ruby Community
да тут дело не в ду. если ты и через бинд напишешь, то то же самое будет — где-то на выходе и в самом верху
источник

AG

Alex G in Saint P Ruby Community
я сравниваю с Do, потому что это очень близко по семантике к исключениям.
Можно писать себе свой happy path и не париться
источник

IM

Igor Morozov in Saint P Ruby Community
в бинде тоже пишешь хэппи пэф и не паришься, в общем-то 🤔
источник

IM

Igor Morozov in Saint P Ruby Community
ду это ж просто способ написать императивный код на монатках
источник

AG

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

IM

Igor Morozov in Saint P Ruby Community
Нет 🤔
источник

IM

Igor Morozov in Saint P Ruby Community
Ну, не всегда. У меня не получается
источник

AG

Alex G in Saint P Ruby Community
ну ладно, у меня мало опыта, я только учусь с этим работать
источник

IM

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

AG

Alex G in Saint P Ruby Community
Igor Morozov
ду это ж просто способ написать императивный код на монатках
источник