УМННБJ, ЯХВ. Войти !bnw Сегодня Клубы
Пиздец, как меня бесит редисовый драйвер для хаскеля (hedis), при чем чем дальше -- тем сильнее. Сначала бесит тем, что хуй в нем разберешься из-за типов (сделали выверт через обобщение монад, в результате все имеет тип вида ``` set :: RedisCtx m f => ByteString key -> ByteString value -> m (f Status) ``` эм эф стринг, блять. Вот сразу очевидно что это, новичем придет и не сможет два байта в редис отослать. Позор, кароч. Потом начало раздражать когда он зависать начал -- оказалось, что все сделано на ([s]честном слове[/s]) ленивых вычислениях, завязано на attoparsec в алгоритме и так далее. Ну, это ладно еще. Но вот что до сих пор добивает -- неразбериха с типами, которые вообще не к пользователю повернуты. С одной стороны типами пытаются, вроде бы, отобразить протокол, делая их максимально неудобными для конечного пользователя, -- а с другой не делают таких вещей как прием непустых списков в аргумент (в результате если вы сделаете `Redis.sadd "foo" []` -- вас ждут страшные муки). Ну и вот сейчас, т.к. пишу новый кусок, пробовал честно обрабатывать все ошибки -- не получилось. Вот кусок кода: ``` r <- liftIO $ R.runRedis (s ^. redisConn) $ R.multiExec $ do R.set (getJobStateKey jid) (toStrictByteString (J.encode state)) R.sadd jobStateKeysSetKey [(toStrictByteString . unJobId) jid] return $ fmapR (const jid) $ redisTxToEither r ``` Вроде ж бы весь этот runRedis вернет результат `Either Reply a`, то есть как раз то, что нужно, типа если `Left reply` -- знач ошибка, если `Right a` -- зрач результат (на самом деле здесь он мне не нужен). Но компилятор честно предупреждает, что R.set возвращает значение, а я его не использую. Перед тем, как сделать игнор значения через `_ <- R.sadd ...` решил пойти проверить что там, и оп! Оказалось, что и там возвращается некоторый Status, который тоже может быть Ok, а может быть и не Ok а очень даже ошибкой. Тут уж я не знаю, виноват ли редис или драйвер, но сделано это все крайне неудобно, почти уверен, что все текущие пользователи редиса из хаскеля кладут на это болт и все игнорируют. Данкен, ау фидерзейн.
#RZB9RJ / @kb / 3817 дней назад

@figli Shto?
#RZB9RJ/02Y / @kb --> #RZB9RJ/CA0 / 3817 дней назад
моча_съела_говно.жпг
#RZB9RJ/IG9 / @anonymous / 3817 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.