Size: a a a

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

2019 April 29

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
дефки не умеют в эвал символа?…. хм….
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
там примерно так
(if (instance? clojure.lang.Symbol name)
         nil
         (throw (IllegalArgumentException. "First argument to defn must be a symbol")))
источник

IG

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

a

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

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
бывыет, надо настрогать функций типа get-<something> set-<something>
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Ivan Grishaev
бывыет, надо настрогать функций типа get-<something> set-<something>
а не проще с протоколами?
источник

KC

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

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
Ребята, такой вот вопросец у меня. Хочу грязным патчем отредактировать метод из либы, который иногда фризит моё приложение при странных обстоятельствах. Идей как пофиксить баг нет, issue открыто пол года назад, так что пуллреквесты не предлагать

Моя идея заключается в том, чтобы кинуть экзепшн или завершить программу в том месте, где происходит фриз, чтобы потом запускать программу в while true цикле в баше и она таким образом перезапускалась бы

Так вот, что я сделал:
в проекте я создал файл src/morse/polling.clj, содержимое которого полностью копирует этот файл, за одним исключением, я отредактировал create-producer добавив  после 43й строки (System/exit 1))

Мой вопрос как сделать это правильно. Что сделал бы крутой прошаренный программист в такой ситуации?
источник

RN

Ryzhikov Nikolay in Clojure — русскоговорящее сообщество
форкни его
источник

A

Alexander in Clojure — русскоговорящее сообщество
+100
источник

DS

Denis Shilov in Clojure — русскоговорящее сообщество
Я делаю через (in-ns) если доработка маленькая
источник

DS

Denis Shilov in Clojure — русскоговорящее сообщество
Если надо переопределить одну функцию например
источник

IG

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

DS

Denis Shilov in Clojure — русскоговорящее сообщество
А организационно это довольно просто
источник

DS

Denis Shilov in Clojure — русскоговорящее сообщество
Делаешь отдельный файл, например вот такого содержания https://gist.github.com/shilder/4629e93763b02b69c9050ef6bb640103
источник

DS

Denis Shilov in Clojure — русскоговорящее сообщество
И require ишь его где-то у себя в проекте
источник

DS

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

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Написано же, «Идей как пофиксить баг нет»
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
источник

DS

Denis Shilov in Clojure — русскоговорящее сообщество
Ну я отвечаю на вопрос - как поправить метод из чужой либы
источник