Size: a a a

Saint P Ruby Community

2019 December 02

IM

Igor Morozov in Saint P Ruby Community
на самом деле, не только, но большую часть времени их
источник

v

vveare138 in Saint P Ruby Community
Igor Morozov
раскрой тему, пожалуйста
ну монада же обладает набором операций
источник

v

vveare138 in Saint P Ruby Community
типа байнд, фмап, ретерн
источник

v

vveare138 in Saint P Ruby Community
и можно значение запакованное в монаду крутить туда-сюда
источник

RI

Rustam Ibragimov in Saint P Ruby Community
Igor Morozov
а вот я и в поисках определния резалт обжект.

я для резалтов юзал только монатки, у меня очень ограниченный взгляд на мир
ты можешь для резалтов юзать даже простую иерархию классеков Result, Success < Result, Failure < Result (дотошный нэйминг опустим), с опр. интерфейсом - и это тоже будет норм, т.к. свой смысл и суть они тоже будут передавтаь ) успешный-неуспешный, с состоянием что там успешного-неуспешного и чего 🙂
источник

SM

Sergei Maximov in Saint P Ruby Community
Igor Morozov
а вот я и в поисках определния резалт обжект.

я для резалтов юзал только монатки, у меня очень ограниченный взгляд на мир
Если мы говорим именно про ResultObject, то тут единого определения и нету вроде. В общем случае я под этим понимаю просто какой-нибудь результат вычисления. Например, если мы говорим про Object в контексте Ruby, то я тут просто использую PORO (определённый через Struct.new) для группировки нескольких значений, чтобы не возвращать из метода какой-нибудь хеш. Если нужно добавить семантику "успешности", я беру Maybe/Result (которые сами по себе являются ResultObject'ами). Также можно комбинировать монады оба подхода, оборачивая PORO в монаду.
источник

IM

Igor Morozov in Saint P Ruby Community
О. Т.е. для Result object не обязательна семантика успешности?
источник

SM

Sergei Maximov in Saint P Ruby Community
Igor Morozov
О. Т.е. для Result object не обязательна семантика успешности?
Нету чёткого определения, на твой вопрос ответить нельзя
источник

IM

Igor Morozov in Saint P Ruby Community
Можно его дать
источник

A

Alex in Saint P Ruby Community
это похоже на попытку изобрести паттерн на пустом месте:)
источник

SM

Sergei Maximov in Saint P Ruby Community
Igor Morozov
Можно его дать
Ну я для себя дал, ты тоже можешь придумать определение, а кто-то может с ним не согласиться
источник

IM

Igor Morozov in Saint P Ruby Community
Sergei Maximov
Ну я для себя дал, ты тоже можешь придумать определение, а кто-то может с ним не согласиться
Огонь, спасибо ❤️
источник

IM

Igor Morozov in Saint P Ruby Community
Alex
это похоже на попытку изобрести паттерн на пустом месте:)
На самом деле, паттерн уже есть и используется, просто нет какого-то описания, кроме как в виде монадок
источник

SM

Sergei Maximov in Saint P Ruby Community
Поэтому если говорить о терминологии, нужно либо пользоваться общепринятыми определениями, либо строго ограничивать контекст определений
источник

A

Alex in Saint P Ruby Community
Так а что описывать? Базовые конструкции языка дают возможность инстанциировать объект нужного типа и вернуть его в качестве результата выполнения функции, это вроде бы все.
источник

A

Alex in Saint P Ruby Community
Зачем усложнять?
источник

IM

Igor Morozov in Saint P Ruby Community
Sergei Maximov
Поэтому если говорить о терминологии, нужно либо пользоваться общепринятыми определениями, либо строго ограничивать контекст определений
А что за общепринятые? Моноид в категории эндофункторов? 🙂
источник

SZ

Slava Zharkov in Saint P Ruby Community
Sergei Maximov
Если мы говорим именно про ResultObject, то тут единого определения и нету вроде. В общем случае я под этим понимаю просто какой-нибудь результат вычисления. Например, если мы говорим про Object в контексте Ruby, то я тут просто использую PORO (определённый через Struct.new) для группировки нескольких значений, чтобы не возвращать из метода какой-нибудь хеш. Если нужно добавить семантику "успешности", я беру Maybe/Result (которые сами по себе являются ResultObject'ами). Также можно комбинировать монады оба подхода, оборачивая PORO в монаду.
ты пишешь, что оборачиваю в PORO, чтобы не возвращать хеш. а эта дополнительнная обертка добавляет какой-то смысл, поведение?
источник

SM

Sergei Maximov in Saint P Ruby Community
Моноид в категории эндофункторов — это определение монады, а не гипотетического ResultObject'а.

Ну вот тебе пример: у понятия монады есть устоявшееся и общепринятое определение, а вот тут есть определение ResultObject'а, которое действует строго в рамках одной библиотеки (это не реклама, не баньте плез)
источник

SM

Sergei Maximov in Saint P Ruby Community
Slava Zharkov
ты пишешь, что оборачиваю в PORO, чтобы не возвращать хеш. а эта дополнительнная обертка добавляет какой-то смысл, поведение?
В большинстве случаев нет, не добавляет, т.е. объект играет роль просто контейнера.
источник