Size: a a a

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

2020 April 28

IG

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

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
(defonce ^:dynamic *server* nil)

(defn fix-fake-sites-server [t]
 (let [opt {:port 8808 :join? false}]
   (binding [*server* (run-jetty sites-handler opt)]
     (t)
     (.stop *server*))))
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
у нас полно тестов, где на время поднимается фейковый Jetty-server
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
(use-fixtures :each
 (fn [test-fn]
   (fn []
     (binding [*config* {:foo *my-flag*}]
       (prn *config*)
       (test-fn)))))
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
фикстуру лучше выносить в отдельную функуцию
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
а почему фикстура возвращает функцию?
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
еще важно как ты запускаешь тесты. Если просто как функцию (test-foo), то фикстуры не работают
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Ivan Grishaev
еще важно как ты запускаешь тесты. Если просто как функцию (test-foo), то фикстуры не работают
lein test
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Kirill Chernyshov
(use-fixtures :each
 (fn [test-fn]
   (fn []
     (binding [*config* {:foo *my-flag*}]
       (prn *config*)
       (test-fn)))))
вот нет, я использую shrubbery чтоб мокать некоторые вещи, ну и ему надо чтоб данные были сразу
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
в общем решил – просто перенес (ig/init config) из фикстуры в тест, а там уже и биндинги проставил
источник

E

ETL in Clojure — русскоговорящее сообщество
кто может объяснить в стиле explain like i'm five, что делает макрос locking?
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
ETL
кто может объяснить в стиле explain like i'm five, что делает макрос locking?
Ты знаешь как работает тред-лок?
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Грубо говоря я такой беру короче права на модификацию объекта и никаким другим тредам не даю его модифицировать пока сам не закончу
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Потом я делаю так называемый release, чтобы другие тоже могли в него подолбиться. Во многих языках такое есть
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
В кложуре, однако, большинство иммутабельных объектов по умолчанию не требуют лока, потому что он внутре реализован, но вот в редких кейсах когда тебе приходится лезть в JVM приходится эксплицитно лочить
источник

E

ETL in Clojure — русскоговорящее сообщество
👍👍👍 критически благодарен
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
)
источник
2020 April 29

MA

Mike Ananev in Clojure — русскоговорящее сообщество
Вопрос про JVM: делаете ли вы хотя бы иногда heap dump  в промышленной среде для того, чтобы выявить проблемы c кодом? Если да, то как вы делаете это в докере?
источник

ИС

Ильшат Султанов in Clojure — русскоговорящее сообщество
Mike Ananev
Вопрос про JVM: делаете ли вы хотя бы иногда heap dump  в промышленной среде для того, чтобы выявить проблемы c кодом? Если да, то как вы делаете это в докере?
через visualvm не пробовал?
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
да пробовал. а если кластерное решение, которое размещается динамически в облаке в докере?
источник