Size: a a a

Clojure — русскоговорящее сообщество

2019 May 13

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
ну, в алефе
источник

AB

Arcady Balandin in Clojure — русскоговорящее сообщество
Art Semyonov (vi/vim)
Взял и прицепил lacinia. В чем проблема-то?
источник

A

Alexander in Clojure — русскоговорящее сообщество
в алефе есть, я так и говорил )
источник

A

Alexander in Clojure — русскоговорящее сообщество
ну значит оно подходит под исходные требования 100%
источник

АГ

Алесь Гузик in Clojure — русскоговорящее сообщество
из опыта могу посоветовать не связываться с core.async если есть возможность обойтись без него. оно глючное, и даже если бы не было глючным, то всё равно в плане отладки лютый пиздец
источник

AB

Arcady Balandin in Clojure — русскоговорящее сообщество
а для авторизации что прикручивать? Мне типа passport.js надо, чтобы были плагины для всяких там одноклассников.
источник

АГ

Алесь Гузик in Clojure — русскоговорящее сообщество
баги вот типа таких: https://dev.clojure.org/jira/browse/ASYNC-198
источник

AS

Art Semyonov (vi/vim) in Clojure — русскоговорящее сообщество
Алесь Гузик
из опыта могу посоветовать не связываться с core.async если есть возможность обойтись без него. оно глючное, и даже если бы не было глючным, то всё равно в плане отладки лютый пиздец
А какая разница между core.async и кастомным тред пулом с кастомной коммуникацией?
источник

АГ

Алесь Гузик in Clojure — русскоговорящее сообщество
core.async переписывает код, и делает это не очень корректно
источник

AS

Art Semyonov (vi/vim) in Clojure — русскоговорящее сообщество
Алесь Гузик
core.async переписывает код, и делает это не очень корректно
Что значит переписывает? go/go-loop макросы?
источник

АГ

Алесь Гузик in Clojure — русскоговорящее сообщество
да
источник

AS

Art Semyonov (vi/vim) in Clojure — русскоговорящее сообщество
Ну можно руками делать так же некорректно.
источник

АГ

Алесь Гузик in Clojure — русскоговорящее сообщество
или можно взять pulsar
источник

AS

Art Semyonov (vi/vim) in Clojure — русскоговорящее сообщество
Хотя в целом соглашусь — обычно достаточно thread, future, promise
источник

АГ

Алесь Гузик in Clojure — русскоговорящее сообщество
руками если ты неправильно коллбеки сделал ты хотя бы имеешь шанс понять что что-то не так, а когда у тебя очевидно корректный код, который вне go корректно работает, а внутри - нет, то это очень неприятно
источник

ST

Sergey Tkachenko in Clojure — русскоговорящее сообщество
Arcady Balandin
а для авторизации что прикручивать? Мне типа passport.js надо, чтобы были плагины для всяких там одноклассников.
самая популярная штука https://funcool.github.io/buddy-auth/latest/
источник

ST

Sergey Tkachenko in Clojure — русскоговорящее сообщество
но на счёт плагинов к одноклассникам не уверен)
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Art Semyonov (vi/vim)
Что значит переписывает? go/go-loop макросы?
https://www.youtube.com/watch?v=R3PZMIwXN_g

Там 2 видео от создателя.
Голова пухнет после всего этого, но занятно.
источник

AS

Art Semyonov (vi/vim) in Clojure — русскоговорящее сообщество
Я бы просто не называл macroexpand как "переписывает код". Это не корректно.
источник

AS

Art Semyonov (vi/vim) in Clojure — русскоговорящее сообщество
user=> (source a/go)
(defmacro go
 "...docstring..."
 [& body]
 (let [crossing-env (zipmap (keys &env) (repeatedly gensym))]
   `(let [c# (chan 1)
          captured-bindings# (clojure.lang.Var/getThreadBindingFrame)]
      (dispatch/run
        (^:once fn* []
         (let [~@(mapcat (fn [[l sym]] [sym `(^:once fn* [] ~(vary-meta l dissoc :tag))]) crossing-env)
               f# ~(ioc/state-machine `(do ~@body) 1 [crossing-env &env] ioc/async-custom-terminators)
               state# (-> (f#)
                          (ioc/aset-all! ioc/USER-START-IDX c#
                                         ioc/BINDINGS-IDX captured-bindings#))]
           (ioc/run-state-machine-wrapped state#))))
      c#)))
nil
user=>
источник