Size: a a a

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

2020 November 11

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
во, ещё можно сделать финт ушами и передавать в format-rate (и rate) хэшмапу одним аргументом, чтобы потом диспатчить по ненулевым base и nominal
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
жаль format не поддерживает именованное форматирование, только
источник

Н

Никита in Clojure — русскоговорящее сообщество
Спасибо, так и сделаю, получилось очень познавательное ревью.
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Никита
Спасибо, так и сделаю, получилось очень познавательное ревью.
(let [rate* (rate arg)
     fmt (cond nominal "%4d %s = %6.2f %s"
               base "   1 %s = %6.2f %s"
               :else "   1 %s = %6.2f RUB")
     args (remove nil? (concat fmt nominal currency rate*))]
 (apply format args))

идея примерно такова, не проверял, но суть, думаю, ясна
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Никита
@dbvvmpg  можете посмотреть последний вариант моего скрипта? В том числе на идеоматику, стиль и прочее. https://gist.github.com/Arvantos/d20df52c677a3669e13b078e6c99c2da
Можно ещё сгенерить не одну строку, а коллекцию строк, и потом сделать println по элементам, чтобы join \n не делать
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Sergey Trofimov
Можно ещё сгенерить не одну строку, а коллекцию строк, и потом сделать println по элементам, чтобы join \n не делать
и разделитель впихнуть в туже коллекцию, чтобы два раза не джойнить, а ещё есть mapcat
источник
2020 November 12

E

ETL in Clojure — русскоговорящее сообщество
а кто подскажет наиболее разумные способы для использования with-redefs, rtfm делал, но до конца не понял - когда именно стоит использовать with-redefs
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
В тестах, например
источник

E

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

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Есть у тебя функция f1, которая использует функцию f2. Допустим, f2 не содержит полезной для проверки нагрузки или вообще лезет вовне, а тест написать нужно на логику f1.
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Ты временно переиначиваешь f2, тестируешь что тебе нужно и всё.
источник

E

ETL in Clojure — русскоговорящее сообщество
Теперь понял. Полезно в случаях, когда мы подозреваем, что при изменении f2 - f1 должно изменить поведение )
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
ETL
а кто подскажет наиболее разумные способы для использования with-redefs, rtfm делал, но до конца не понял - когда именно стоит использовать with-redefs
только в тестах, потому что оно не thread-safe
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
а так у меня постоянный паттерн это
 (with-redefs [some-ns/fn-name (constantly a-mock-result-of-fn-name)]
          (do-some-stuff))
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
но вообще я в последнее время стараюсь писать так, чтобы редефайнить для тестов приходилось минимально, ни разу не пожалел
источник

Н

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

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
into можно заменить на conj
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
into можно заменить на conj
который первый перед map
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
а второй into я бы заменил на (assoc % :base base)
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Может это превратить в функцию, которая получает урл и называется
"get-cbr-currency-map"?

И меня бесит -> после которого всё идет с новой строки а не с той же. Я бы перенес curl/get на ту же строку что и ->
источник