Fork me on GitHub
#clojure-russia
<
2017-03-08
>
ilshad00:03:16

@y.khmelevskii почему нет, не вижу проблем с сайд эффектами в интерцепторах.

ilshad00:03:26

и он есть в тех которые используешь, логгинг напр.

ilshad00:03:29

да и сами “хендлеры” - тоже интерцепторы, как и все остальное. Так что все ок.

dima03:03:28

@misha (->> :foo @(atom {:foo :bar})) я бы не стал так записывать, иначе ты передаешь deref/@ 2 аргумента - сам атом и :foo думаю так лучше (->> {:foo :bar} atom deref :foo) или (->> (atom {:foo :bar}) deref :foo)

artemyarulin05:03:42

голосую за deref - не многие знают что можно юзать ее как функцию, а не @. У меня много тестов написаны в таком стиле

(->> (do-side-affect-which-returns-atom)
     deref
     :key1
     (= 42)
     is)

larhat05:03:31

@y.khmelevskii интерцептором норм. имейте ввиду только, что время можете мерять странное, в зависимости от положения интерцептора в стеке. ещё если хэндлер вернёт ленивую коллекцию, померяете меньше, чем на самом деле будет сделано, емнип

andre07:03:38

при разработке react native очень не хватает devcards , @roman01la нашел твой проект https://github.com/roman01la/react-native-devcards, можешь поделиться, что в этом направлении есть? конечно хотелось бы в веб это все отображать, т.е. использовать обычный devcards для react native вьюх

y.khmelevskii08:03:15

@larhat , @ilshad спасибо за ответ. Сейчас потестирую насколько время выполнения запроса будет отличаться от того, что я могу получить в интерцепторе. А вы бы в каком месте высчиляли время выполнения запроса и сохраняли его?

misha09:03:52

@trybeee @artemyarulin юзкейс был такой, что есть атом с мапой-лукапом, и я через нее проганяю значение, как через ф-ю, типа

(->> k m f1 f2 (map f3)))
и почему-то ожидал, что @ "отрабатает" раньше, чем макроэкспанд, а не тогда же

artemyarulin09:03:43

а @ это не макрос сам по себе?

misha09:03:58

тк он не сильно похож на классический макрос (не похож на вызов ф-ии), я думал, что он "специальнее", в детали не вдавался особо раньше

misha09:03:10

а тут запустил рокету, и она не долетела kappa

misha09:03:21

@ - ридер макро, а не просто макро

artemyarulin09:03:14

(defn deref
  "Also reader macro: @ref/@agent/@var/@atom/@delay/@future/@promise

artemyarulin09:03:26

а чо это такое reader macro?

artemyarulin09:03:26

clojure readers - это оно и есть?

misha09:03:44

The behavior of the reader is driven by a combination of built-in constructs and an extension system called the read table. Entries in the read table provide mappings from certain characters, called macro characters, to specific reading behavior, called reader macros. Unless indicated otherwise, macro characters cannot be used in user symbols.

misha09:03:48

я-то поэтому и думал, что сначала отрабатывают ридермакросы, а потом уже юзерские

misha09:03:28

ну кложа сразу выплюнула бы

clojure.lang.ArityException: Wrong number of args (2) passed to: core/deref

misha09:03:51

а кложаскрипт заставил принтами дебажить

artemyarulin09:03:29

а вот были бы типы - сразу бы компилятор заругался! troll

misha09:03:03

с типами я бы до этого только через полгода бы добрался kappa

Roman Liutikov10:03:19

@andre без понятия, rndevcards делал ради фана

kazikus14:03:28

а что думаете по поводу типов в https://github.com/arohner/spectrum

kazikus14:03:53

может выстрелить или идея сразу плоха?

artemyarulin16:03:17

How It Works
This contains a spec parser and a re-implementation of clojure.spec, except they work on literals and specs rather than normal clojure values.
(:require [spectrum.conform :as c])
(c/conform (s/cat :x integer?) [3])
=> {:x 3}
(c/parse-spec (s/+ integer?))
Returns a defrecord, containing the parsed spec. This is basically a reimplementation of clojure.spec, except more data-driven
идея хороша да, но реализация чота не ах. Но по другому никак, спека очень macros heavy, сделать что-то вокруг нее можно разве что другими макросами, так что предположу что не взлетит и помрет под тяжестью деталей реализации

misha16:03:21

если мемасики в README - можно неглядя в продакшн

kishanov16:03:26

У Аллена проблема с доведением до качества продакшена, он обычно идеи ковыряет и бросает на версии 0.2

artemyarulin17:03:58

дак реестр то в райнтайме достпупен, а у него compile time же типчики

artemyarulin17:03:32

типчики в runtime на основе спеки это... омг - спека 😄

dottedmag18:03:32

да, что-то я туплю.