Size: a a a

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

2021 November 09

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
А я хочу чтобы они dynamic были в общем месте
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Типа не нравится зависимости параметром прокидывать?
источник

ИФ

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

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Математической разницы не вижу, эти графы изоморфны
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Тогда только 1 недостаток – когда дебажишь в репл функцию без депсов непонятно какие у неё зависимости, не очевидно что она не чистая. Но так немного больше писанины
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
да. ну на первый запуск она выдаст unbound *var-name*
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
а зачем :dynamic?
в каждом запросе своё новое значение?
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
плохо, когда запрос становится помойкой, через которую все передается. Через динамическую переменную тоже так себе. Проще всего передать либо два параметра: request и {:db db}. Либо просто контекст {:request ... :db ...}
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Чтобы не было стейтом
Может быть другой, да
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ну мидлвари-то только реквест на вход получают
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Для меня каждый запуск функции, когда она валится из-за зависимостей – стресс и надо больше нервов) Ну и как-то привык к правилу хорошего тона «явное лучше неявного»
источник

IG

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

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ну вы его через binding назнаяете?
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Контекст неплохо, но иногда выходит айнанэ, когда половина системы принимает этот контекст в себя, достаёт db-connection где хочет. Потом развести такую лапшу очень тяжело.
источник

IG

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

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
https://stackoverflow.com/questions/11730828/clojure-and-dynamic#11732193
binding is useful in some contexts but it is not in general a good way to pass parameters around - function composition is usually better in the long run. The reason for this is that binding creates an implicit context that is required for the execution of your function and this can be difficult to test/debug.
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
по init он возвращает функцию (fn [request] ...), которая замкнута на db
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Моя конечная цель упростить вызов функций из repl, чтобы не тягать интегрант.репл каждый раз. Может биндинг здесь не подходит
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ну то есть тебе нужна глобальная переменная
это может быть и простой def, подменяемый через alter-var-root
я для такого просто mount использую
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
integrant.repl вообще непонятно зачем. Ты можешь сделать минимальную обертку, которая поднимает систему и записывает ее в переменную в dev ns
источник