This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-05-11
Channels
- # beginners (132)
- # boot (2)
- # cider (17)
- # cljs-dev (6)
- # cljsrn (24)
- # clojure (134)
- # clojure-austin (2)
- # clojure-dusseldorf (11)
- # clojure-france (1)
- # clojure-greece (27)
- # clojure-italy (17)
- # clojure-madison (1)
- # clojure-russia (31)
- # clojure-serbia (1)
- # clojure-sg (2)
- # clojure-spec (30)
- # clojure-uk (66)
- # clojurescript (73)
- # core-async (2)
- # cursive (8)
- # data-science (2)
- # datomic (23)
- # dirac (8)
- # emacs (18)
- # gsoc (1)
- # hoplon (36)
- # immutant (26)
- # leiningen (6)
- # off-topic (21)
- # om (19)
- # onyx (6)
- # other-languages (1)
- # pedestal (3)
- # proton (2)
- # random (1)
- # re-frame (1)
- # reagent (2)
- # remote-jobs (2)
- # ring-swagger (8)
- # rum (21)
- # slack-help (1)
- # spacemacs (4)
- # specter (16)
- # untangled (6)
господа, я тут нахлобучил кусок кода, у которого есть апи. все функции апи принимают базу первым аргументом. в репле хочется немного удобнее, и я добавил нулевые арити, которые используют динамический вар. вопрос: как кошернее давать понять, что биндинг пустой (если он пустой) при вызове функции с 0 арити? проверять биндинг внутри каждой функции на пустоту, и бросать эксепшен? или ворнинг какой куда печатать?
или этот подход вообще колхоз, и нужно сжав зубы передавать везде и всегда @conn
? (речь идет скорее об использовании в репле, чем сорс коде)
если выбирать между print и exception, то я за exception потому что это явно показывает что api используется некорректно
да меня задолбало это дб передавать в репле, особенно когда в 99.9999% случаев хочется на свежайшее значение посмотреть
в коде, понятно, что будет передаваться, например в rum-компонентах, а пока я даошки проверяю - аж трисёт уже
как по мне, то экстенд протокола протоколом все же выглядит приятнее чем тот воркераунд который они предлагают
@dottedmag а чем эксепшены от асёртов отличаются в этом случае?
если вдруг кому интересно, спросил Миллера по этому вопросу
it really doesn’t work in all cases
the protocol generates a Java interface and you can for sure, extend a protocol to that interface
the problem is that not every protocol implementation implements that interface - only records or types that do so with an inline declaration like `(defrecord Foo [a] TheProtocol (foo ...))`
If you are implementing a protocol by using `extend-type` or `extend-protocol`, then those instances will NOT be caught by the extension of a protocol interface
So, you really shouldn’t do this :)
Самая странная вакансия из тех, что я в последнее время видел: https://groups.google.com/forum/#!topic/clojure/M_fS9RvzgJY
Окей, хуавей китайская компания, им нужен китайский язык, но зачем нанимать в Санта Кларе?
точно так же как и русские стартапы нанимают в долине с опцией знания русского языка
@dottedmag в санта кларе большой офис хуавея
они там держат в перемешку китайцев и американцев (в пропорции 10 к 1). они ходят по долине, ресерчат, тырят технологии и потом передают всему китаю