Size: a a a

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

2021 October 22

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Но кстати, если исползьовать mount, то эта проблема остается =)
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Классно, спасибо что поделились опытом.
источник

E

ETL in Clojure — русскоговорящее сообщество
делюсь инсайтом:
- скопипастил я из браузера большой набор символов, разделенных пробелами [boo moo qoo ... ]
- мне надо сделать их вектором не нэймспейс кейвордов
- (mapv (comp keyword name keyword) `[myvec])
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
народ, чот вечер пятницы, туплю, можно-ли как-то короче, чем
(let [min-value (apply min (vals m))]
 (keep (fn [[k v]]
         (when (= v min-value)
           k))
       m))

написать выбор ВСЕХ ключей из мапы с минимальным значением?
источник

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
(filter #(= % min-value)  (vals m))
источник

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
а тебе именно ключи надо
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
Неа
источник

ND

Nikita Domnickij in Clojure — русскоговорящее сообщество
(juxt identity
       (comp (partial apply -)
             (juxt last first)))
чот слишком "идиоматично"
источник
2021 October 23

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
@igrishaev спасибо за вчерашнюю дискуссию про компонент.
В тестах вы запуcкаете/останавливаете систему на каждый тест? И то, что есть некоторые накладные расходы на поднятие соединений - этим можно пренебречь? Или для всех тестов одна глобальная запущенная одина раз система?
источник

AD

Alexander Doroshenko in Clojure — русскоговорящее сообщество
в кложе нет стандартного колцевоо буфера? вижу вот такую сторонню либу amalloy/ring-buffer
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
только сейчас добрался. В разных проектах по-разному. Где-то есть макрос with-system:

(with-system [{:keys [db cache ...]} {:config ...}]
 ...)


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

С таким макросом на каждый тест выключается и выключается система. Да, выходят накладные расходы на старт и запуск, зато каждый тест изолирован. Дольше всех стартует кассандра, все остальное, как правило, запускается быстро.

Но когда таких тестов очень много, переделываем на once-фикстуру, которая на время теста поднимает систему и биндит ее к глобальной динамической переменной
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
Кроме того, запуск системы делаем идемпотентыми, то есть если она уже запущена, то повторый запуск ничего не делает. Далее в репле можно поднять систему и выполнить тест -- от сработает мгновенно, потому что фикстура пропустит запуск системы
источник

a

alex in Clojure — русскоговорящее сообщество
Подскажите, первый раз пишу на re-frame: у меня есть гигантская форма и я весь стейт в локальном атоме держу, но при этом в каждый компонент надо его прокидывать (дабы писать функцию апдейта). Какие есть альтернативы? Разбивать стейт на много атомов или может хранить данные этой формы в арр-db и делать подписки на отдельные поля?
источник

IG

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

ND

Nikita Domnickij in Clojure — русскоговорящее сообщество
дб и подписки
источник

ND

Nikita Domnickij in Clojure — русскоговорящее сообщество
Зачем вообще атомы в рефрейме
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
Мм, звучит как то не очень, на чтение подписка subscribe , на запись - отправка события (dispatch)
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
Куль
источник

a

alex in Clojure — русскоговорящее сообщество
reagent/atom не нужен? Скачал прост пример проекта с learn-reframe, там они повсюду.
Так а если куча инпутов и объект сложный - не делать же каждому ивент который диспатчить. Получается кидать путь и значение? типа dispatch :change [[:path 1 2] new-value]
источник