@proRuby

Страница 1447 из 1594
Tim
19.09.2018
08:02:41
один объект, один результат, один эксепшен

Tim
19.09.2018
08:05:11
Google
Tim
19.09.2018
08:05:22
а когда ты перепроверяешь за ним по сто раз ответ, то не доверяешь

короче размываешь ответственность между классами

вызывающим и вызываемым

Alex
19.09.2018
08:06:02
ответственность - сервис выдает либо результат либо ошибку

все просто

Tim
19.09.2018
08:06:16
уважительное отношение к объекту – просишь лошадей с хуями, он даёт. и ты уже не микришь извне, а лошади ли с хуями мне пришли

Alex
19.09.2018
08:06:18
и допустим в случае монады ты ОБЯЗАН проверить какого оно типа

а вот в случае эксепшенов ты можешь забыть его обработать

на раз два прям.

Tim
19.09.2018
08:06:34
если не получилось у него, он сообщает через свой единственный эксепшен

Tim
19.09.2018
08:07:32
ты по сути делаешь тоже самое но через эксепшен
да, но в моем случае результат выполнения метода (что он вернёт) это всегда лошади с хуями

Google
Anton
19.09.2018
08:07:47
а когда ты перепроверяешь за ним по сто раз ответ, то не доверяешь
Так что тебе мешает так же доверять результату?

Tim
19.09.2018
08:08:09
Так что тебе мешает так же доверять результату?
потому что там может быть что угодно, нил, сообщение об ошибке и т.д.

Anton
19.09.2018
08:08:20
Если мы про result object говорим

Tim
19.09.2018
08:08:36
Anton
19.09.2018
08:08:44
Только инстанс одного типа

Alex
19.09.2018
08:08:45
либо result либо err

a = method() a.is_a? LoshadiSHuyami
эксепшен у тебя становится частью control flow

Tim
19.09.2018
08:09:59
Только инстанс одного типа
и типа будет if result.success? result.payload... else result.error end

Alex
19.09.2018
08:10:34
и типа будет if result.success? result.payload... else result.error end
ты делаешь тоже самое но через эксепшен

в чем разница?

Tim
19.09.2018
08:10:50
мне не нравятся ифики. эксепшен позволяет их избежать. и соответствует правилу о наибыстрейшем выходе из метода

Alex
19.09.2018
08:11:17
ты делаешь тоже самое через эксепшен

в чем разница то?

Ilya
19.09.2018
08:11:30
в нужный момент зафейлил и вернул что надо

Alex
19.09.2018
08:11:34
а ведь ты его еще можешь забыть обработать

Tim
19.09.2018
08:12:13
а ведь ты его еще можешь забыть обработать
ну в этом кстати минус руби относительно джавы, там прям жестко указываешь какие эксепшены выкидывает метод

kolas
19.09.2018
08:12:13
dry monads do крутая штука для такого

Google
Ilya
19.09.2018
08:12:15
вообще эксепшны нужно на горячую ловить. зачем вообще ожидать ошибку исполнения?

Tim
19.09.2018
08:12:29
единственное что я заметил чего не хватает оттуда

Alex
19.09.2018
08:12:43
Tim
19.09.2018
08:13:11
а может уже монады попробовать?
может когда-нибудь попробую

эксепшены ващето тоже можно чейнить

через .cause

Roman
19.09.2018
08:13:33
а может уже монады попробовать?
главное трихомонады не пробуй

Alex
19.09.2018
08:13:38
через жопу можно многое сделать

Tim
19.09.2018
08:13:48
и в корне запроса ты можешь добраться до любой ошибки

Alex
19.09.2018
08:13:50
главное трихомонады не пробуй
в контексте этого сообщения смешнее.

Tim
19.09.2018
08:13:50
это не через жопу

это ООП

Alex
19.09.2018
08:14:16
это ООП
отказывайся от .map и прочего

и пиши на ООП

Tim
19.09.2018
08:14:27
а мап то чё

Alex
19.09.2018
08:14:36
функциональщина, не?

Tim
19.09.2018
08:14:45
с чего бы

Alex
19.09.2018
08:15:08
с чего бы
расскажи что такое функциональщина тогда

Ilya
19.09.2018
08:15:13
ну это как бы редюсер, не?

Tim
19.09.2018
08:15:52
ну ты расскажи

Google
Alex
19.09.2018
08:15:53
> Map (higher-order function) In many programming languages, map is the name of a higher-order function that applies a given function to each element of a functor

Tim
19.09.2018
08:15:54
ну ваще мб

Alex
19.09.2018
08:15:58
> functor

Felix
19.09.2018
08:16:08
главное трихомонады не пробуй
звучит как название каких-то мандавошек

Alex
19.09.2018
08:16:09
https://en.wikipedia.org/wiki/Map_(higher-order_function)

> higher-order_function

Tim
19.09.2018
08:16:16
ну ок

Alex
19.09.2018
08:16:21
Это все функциональщина же не?

Tim
19.09.2018
08:16:37
нуу

Admin
ERROR: S client not available

Tim
19.09.2018
08:16:42
да

но ооп это круто

Alex
19.09.2018
08:16:58
звучит как название каких-то мандавошек
никогда не используйте gem 'trihomonads'

но ооп это круто
ну так пиши без .map и прочих

наслаждайся.

Tim
19.09.2018
08:17:12
Alex
19.09.2018
08:17:19
А я exeption для control flow юзать не хочу

Tim
19.09.2018
08:17:33
Да
ифики это процедурщина)))))

Google
Alex
19.09.2018
08:17:51
ифики это процедурщина)))))
монады чейнить можно

уже функциональщина

Tim
19.09.2018
08:18:08
монады чейнить можно
"можно через жопу много что сделать"

Alex
19.09.2018
08:18:13
в руби просто паттерн мэтчинг не оч крутой

Tim
19.09.2018
08:18:15
но так ифики это процедурщина

Alex
19.09.2018
08:18:24
но так ифики это процедурщина
потому что в руби паттерн мэтчинг не оч

Tim
19.09.2018
08:18:42
но ифики это процедурщина

)))))

"ощущение как будто на си пишу"

Alex
19.09.2018
08:19:18
return user_not_found_error unless result.success?

где тут ифики

Tim
19.09.2018
08:19:38
>unless

Alex
19.09.2018
08:20:04
>unless
осторожно, так и switch case можно к ификам свести

Tim
19.09.2018
08:20:21
ну это ифики

с синтаксическим сахаром

Alex
19.09.2018
08:20:30
и паттерн мэтчинг тоже ифики

с сахаром

все ифики

как на ассемблере пишу

Tim
19.09.2018
08:20:51
и паттерн мэтчинг тоже ифики
ну это покруче ифики

Ilya
19.09.2018
08:21:03
с синтаксическим сахаром
пишешь на руби и удивляешься сахару

Alex
19.09.2018
08:21:12
пойду ифики писать

Tim
19.09.2018
08:21:22
пишешь на руби и удивляешься сахару
волка в овечьей шкуре надо сразу видеть

Страница 1447 из 1594