This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-05-29
Channels
- # admin-announcements (2)
- # beginners (4)
- # boot (6)
- # cider (18)
- # cljs-dev (22)
- # cljsrn (13)
- # clojure (76)
- # clojure-czech (2)
- # clojure-dusseldorf (2)
- # clojure-russia (45)
- # clojure-sg (1)
- # clojure-spec (15)
- # clojurebridge-ams (6)
- # clojurescript (58)
- # cursive (4)
- # datomic (14)
- # dirac (31)
- # emacs (6)
- # funcool (2)
- # hoplon (2)
- # lein-figwheel (1)
- # om (124)
- # planck (17)
- # re-frame (12)
- # slack-help (11)
- # specter (12)
- # tmp-json-parsing (6)
- # yada (4)
парни, а может ли кто объяснить, почему эти 2 макроса - макросы, а не функции? в чем профит?
(ns natal-shell.data-source)
(defmacro data-source [config]
`(js/React.ListView.DataSource. (cljs.core/clj->js ~config)))
(defmacro clone-with-rows [ds rows]
`(.cloneWithRows ~ds (cljs.core/clj->js ~rows)))
clj->js вроде тож макрос?
можно юзать #js, но оверхед в рантайме (ктот грил что даже заметный)
(defmacro m [config]
`(cljs.core/clj->js ~config))
(defn f [config]
(cljs.core/clj->js config))
(time (dotimes [n 1000000] (m {:rowHasChanged not=})))
(time (dotimes [n 1000000] (f {:rowHasChanged not=})))
"Elapsed time: 586.145000 msecs"
"Elapsed time: 1390.510000 msecs"
ну понятно, просто в контексте мобилочки, юзер тыкнул 2 раза в секунду, 5-10 раз clj->js по стеку где-то вызвалось - 2ms
#js попробуй еще
про core.spec нашел статейку небольшую http://tales.sveri.de/posts/2016-05-28-clojure-spec.html, чота как-то шумновато по мне(
а кстати да - уже не помню но один из них рекурсивно все сконвертит, другой (#js наверно) тока top levels
вроде
@artemyarulin: подскажи, где этого чувака искать: https://github.com/facebook/react-native/blob/master/Libraries/CustomComponents/ListView/ListViewDataSource.js
(def ReactNative (js/require "react-native"))
(defn- data-source [config]
(let [ds (.. ReactNative -ListView -DataSource)]
(new ds (clj->js config))))
что-то заредюсить количество точек не получилось - матерится, хотя я надеялся на:
(.-ListView.-DataSource. ReactNative (clj->js config))
парни а вы что для навигации в RN юзаете?
написал в #C0D2M7JEN , но там все молчат я раньше для javascript использовал VSCode. Сейчас заинтересовался Clojure, хотел его тоже писать в vscode, но никак не разберусь как прикрутить отладку и репл. Есть кто пользуется? хочется одновременно видеть и консоль вывода и окно репла... или проще использовать какойнить многоконный ConEmu или tmux?
@slava_nedorezov: если исходить из того, что vscode на электроне, то посмотри на атом с proto-repl. дебага дам нет(он по ходу только в emacs) а репл в отдельной вкладке получается, в отдельной группе. получается редактор разделен на две части - в одной код, в другой - репл. дебаг может уже cursive научился, не смотрел давно на него.
clojure.spec уже в мастере cljs https://twitter.com/swannodette/status/736687541336805377
я не помню, а как в этом чатике отнеслись к clojure.spec? планируете внедрять себе или schema/core.typed?
я бы попробовал, учитывая что многие prismatic schema юзают) а кстати есть классное чтиво по тому как schema (ну и собственно теперь уже spec) юзать?
@misha: я вот че то тоже пока на нем остановился, написал только небольшую обертку чтобы с re-frame нормально ложилось) а я правильно понял что хэдер можно только либо для всех сцен, либо никак?
@savelichalex: даже не знаю. у меня столько всего происходит сейчас, что я даже не помню, недель 6 назад с ним возился. даже не помню как его выбрал, и из чего выбирал
гм. а вопрос - датаскрипт можно грузить в каком-нибудь веб-воркере, а потом передать в основной контекст?
я правильно понимаю, что никакие фичи вроде этой не помогут? https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast?hl=en