Size: a a a

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

2020 January 28

AG

Alexey Golda in Clojure — русскоговорящее сообщество
с атомом?
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Надо атомы ещё сложить в мапу
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Но это настолько не по-кложуровски, что как-то неправдоподобно даже)
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
а в чем сложность?
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Vlad Lisovsky
реакт сделал очень удобным написания функций вида

F(data) => HTML, причем они пересовываются эффективно благодяря внутреннему vitrual dom,
скрывая от тебя необходимость делать этот side effect - изменения дома
я бы по-другому поставил акценты - реакт изменил работу с дом с deferred mode на типа-immediate mode, что сильно проще и понятнее.
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Да ни в чем, я бы просто мапу сделал атомом, а не каждый элемент мапы)
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Alexey Golda
из другой части программы?
я вот на это отвечал)
источник

AG

Alexey Golda in Clojure — русскоговорящее сообщество
Kirill Chernyshov
а в чем сложность?
ну так давай одновременно, я про то что атом не даст тебе нелогичного неожиданного поведения.

во вторых я сказал что если не приложить специально усилий, это значит что когда ты мутируешь то что иммутабельно по дефолту, то ты делаешь это осознанно, и тогда нечего жаловаться на эффекты. А если пользуешься атомом, то тоже в общем-то.
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Alex Bubnov
я бы по-другому поставил акценты - реакт изменил работу с дом с deferred mode на типа-immediate mode, что сильно проще и понятнее.
скорость рендеринга - это вообще отдельный вопрос, который не заслуживает рассмотрения в большинстве случаев.
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
У нас на митапе нельзя трезвым быть.
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Kirill Chernyshov
я вот на это отвечал)
Суть в том, что в аналогичном кейсе нужно было бы этот атом прямо в ивенте таскать, чтобы получить настолько же скрытые зависимости
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Alexey Golda
ну так давай одновременно, я про то что атом не даст тебе нелогичного неожиданного поведения.

во вторых я сказал что если не приложить специально усилий, это значит что когда ты мутируешь то что иммутабельно по дефолту, то ты делаешь это осознанно, и тогда нечего жаловаться на эффекты. А если пользуешься атомом, то тоже в общем-то.
может и даст, зависит от деталей реализации. Например в mount скрыт атом в который складывается порядок загрузки неймспейсов и легко получить состояние когда в репле все работает а в бою ломается из-за неверного порядка подгрузки.
источник

AG

Alexey Golda in Clojure — русскоговорящее сообщество
ну юзай валидаторы для атомов или compare-and-set! если тебе надо отталкиваться от того что в данный момент в стейте и не менять его:

(def a (atom 0)) 

(compare-and-set! a 10 20)
=> false

@a
=> 0

(compare-and-set! a 0 10)
=> true

@a
=> 10


а так чего удивляться что просто поменял стейт атома из другого треда. Я имел ввиду прежде всего что кложа иммутабельна, и что надо знать как, изменить стейт, а раз знаешь и дошел до этого, то по-любому ты делаешь это осознанно. В общем ладно, я допускаю что я не вник в суть проблемы.
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
> а в бою ломается из-за неверного порядка подгрузки
а что такого вы делаете, что ломается?
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
порядок загрузки mount равен порядку ns при компиляции
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Ivan Grishaev
> а в бою ломается из-за неверного порядка подгрузки
а что такого вы делаете, что ломается?
https://t.me/clojure_ru/80625
уже обсуждали тут
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
заскучали?
вот вам немножко бенчмарков про деструктуринг 😊
https://github.com/serioga/clojure-benhcmarks/blob/master/src/clojure_benchmarks/destructuring.clj
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
@strofimov1972 с какими объемами данными подобное должно реально тормозить? Если сейчас все наносекундами меряется
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
@strofimov1972 с какими объемами данными подобное должно реально тормозить? Если сейчас все наносекундами меряется
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
вопрос не в объемах данных, а в частоте вызова функций
иногда нужно знать, какие вкусности чего стоят
источник