Size: a a a

2020 March 01

MK

Mark Kos in Kotlin Moscow
Alexander Nozik
Обсуждали в разных чатах этот Either. По-моему все-таки проще свой сделать. Строк 20 занимает. Если вообще нужен (Елизаров считает, что не нужен, я согласен).
Почему Either не нужен?
источник

AN

Alexander Nozik in Kotlin Moscow
Mark Kos
Почему Either не нужен?
А зачем? Не хочу начинать дискуссию сначала, но пришли к выводу, что единственное общее место применения - это возврат ошибок. А возвращать ошибки при помощи Either - это такой довольно специфический стиль.
источник

MK

Mark Kos in Kotlin Moscow
Alexander Nozik
А зачем? Не хочу начинать дискуссию сначала, но пришли к выводу, что единственное общее место применения - это возврат ошибок. А возвращать ошибки при помощи Either - это такой довольно специфический стиль.
Именно для этого и используем.
источник

MK

Mark Kos in Kotlin Moscow
Видел в std класс Result, но компилятор запрещает его возвращать из метода
источник

SS

Sergei Samoilov in Kotlin Moscow
Alexander Nozik
А зачем? Не хочу начинать дискуссию сначала, но пришли к выводу, что единственное общее место применения - это возврат ошибок. А возвращать ошибки при помощи Either - это такой довольно специфический стиль.
Мне кажется, что тут зависит от стиля написанной программы. Если бизнес процесс оформлен в  виде небольшого пайплайна со всякими map, fold и flatMap, то try-catch смотрится немного костыльно. Особенно когда надо работать со списками или стримами и результат обработки одного элемента не должен аффектить другой.
источник

AN

Alexander Nozik in Kotlin Moscow
Mark Kos
Видел в std класс Result, но компилятор запрещает его возвращать из метода
источник

AN

Alexander Nozik in Kotlin Moscow
Sergei Samoilov
Мне кажется, что тут зависит от стиля написанной программы. Если бизнес процесс оформлен в  виде небольшого пайплайна со всякими map, fold и flatMap, то try-catch смотрится немного костыльно. Особенно когда надо работать со списками или стримами и результат обработки одного элемента не должен аффектить другой.
Ну неоднозначно. Если прокидывается одна и та же ошибка, почему бы не отловить ее после всей цепочке. Если разные, то Either не спасет. Но тут нет однозначного ответа
источник

АБ

Андрей Берюхов in Kotlin Moscow
Mark Kos
Видел в std класс Result, но компилятор запрещает его возвращать из метода
Где-то видел инфу, что хотят разрешить его возвращать
источник

MK

Mark Kos in Kotlin Moscow
Не совсем подходит.
источник

MK

Mark Kos in Kotlin Moscow
Мне нужно ловить только определенный тип ошибок
источник

MK

Mark Kos in Kotlin Moscow
Остальные выкидывать
источник

AN

Alexander Nozik in Kotlin Moscow
Mark Kos
Мне нужно ловить только определенный тип ошибок
Ну я не настаиваю, но думаю, что тащить ради этого Arrow тяжеловато
источник

AN

Alexander Nozik in Kotlin Moscow
Собственный Either даже с фолдом пишется мгновенно
источник

MK

Mark Kos in Kotlin Moscow
Alexander Nozik
Собственный Either даже с фолдом пишется мгновенно
Согласен.
источник

MK

Mark Kos in Kotlin Moscow
Депендеси в грейдле всё ещё быстрее
источник

SS

Sergei Samoilov in Kotlin Moscow
Alexander Nozik
Ну неоднозначно. Если прокидывается одна и та же ошибка, почему бы не отловить ее после всей цепочке. Если разные, то Either не спасет. Но тут нет однозначного ответа
Поэтому что тогда результат обработки одного элемента может повлиять на другой. Немного запутанный код может получится. В webflux, например, ошибку можно пробросить через Mono или Flux обёртку. В нашем случае так не получится.
источник

AN

Alexander Nozik in Kotlin Moscow
Sergei Samoilov
Поэтому что тогда результат обработки одного элемента может повлиять на другой. Немного запутанный код может получится. В webflux, например, ошибку можно пробросить через Mono или Flux обёртку. В нашем случае так не получится.
Почему это? Во Flow это уже все есть
источник

AN

Alexander Nozik in Kotlin Moscow
Там тот самый Result
источник

SS

Sergei Samoilov in Kotlin Moscow
Alexander Nozik
Почему это? Во Flow это уже все есть
Это если мы используем flow. А если мы просто проходим список?
источник

MK

Mark Kos in Kotlin Moscow
Alexander Nozik
Ну я не настаиваю, но думаю, что тащить ради этого Arrow тяжеловато
Решили глянуть. Если через пару недель кроме either ничего не приживется выкинем arrow
источник