This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-09-03
Channels
- # bangalore-clj (1)
- # beginners (16)
- # boot (23)
- # chestnut (5)
- # cljs-dev (3)
- # cljsjs (3)
- # clojure (115)
- # clojure-conj (3)
- # clojure-italy (17)
- # clojure-russia (22)
- # clojurescript (20)
- # core-async (11)
- # events (3)
- # fulcro (91)
- # funcool (5)
- # heroku (7)
- # hoplon (5)
- # leiningen (3)
- # off-topic (2)
- # om (1)
- # onyx (9)
- # parinfer (1)
- # protorepl (2)
- # re-frame (3)
- # slack-help (2)
- # spacemacs (5)
- # unrepl (1)
@razum2um @kuzmin_m вот кстати эпичный пример на руби http://trailblazer.to/gems/operation/2.0/index.html сверху похоже на either, но под капотом жесть какая-то https://github.com/trailblazer/trailblazer-operation/blob/master/lib/trailblazer/operation/railway.rb
немного еще наброшу, с твоего позволения, все-таки зачем загонять себя в рамки монады? имхо из минусов - все эти слова bind/left/value/fmap не имеют отношения к бизнес логике, которую мы тут пытаемся как можно чище передать (т.е. вместо прямого кода и данных без абстрактной обертки). т.е. я бы понял если бы абстракция была бы внутренняя, свойственная предметной области, на худой конец Operation какой-нить. а с классическим either мы пытаемся удовлетворить понимание процесса абстрактным математиком, что думаешь?
да не проблема же обозвать either-right - Operation::Success, a left Operation::Failure fmap -> if_success bind -> with_success и тд
@fmnoise как только к операции будет предъявлено новое требование, например, быть в состоянии AlmostSuccess (стать шагом визарда, whatever) - классический either приведет к костылю. В общем я хотел сказать, naming matters
но я же правильно понимаю, что ветвление будет вложенным - либо справа, либо слева, так? в общем если обобщить претензию, то может понадобиться 3 или больше действительно равноценные ветви - и тогда это перестает быть простым either
Понял в чем reagent плох. Нет в нем direct manipulation и звать setNativeProps ну как-то через одно место. Пришлось писать компонент на JS. А что делать - обновляю компонент с 60fps - каждые 15 ms (запись звука и metering - показываю анимацию - полосочку/громкость). При обновлении через стейт все тупит и падает fps до двух! Кто сталкивался и как решать? При direct manipulation идем на 60 fps.
@potapenko в om'e такой проблемы нет?
@a.espolov да думаю вряд ли. в целом проблема dsl над dls. Прекрасно думать моделью, и data driven, но иногда авторам фреймворков нужно подумать о задачах “в лоб” и оставить разрабам возможность делать вещи вне их религии. rum возможно может ибо там нет прослойки как я понял. Но reagent люблю все же сильно, и готов пару сотен строк на JS и менять не собираюсь. Но вопрос/притензия есть.
так иногда в любом случае неплохо дропнуться на уровень глубже и написать что-то для скорости
@asolovyov да, согласен. Важно просто держать под рукой такую возможность - опуститься на уровень ниже.