Size: a a a

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

2020 November 12

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Тоже вариант
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Ещё сверху обмазать curl
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
в любом случае
автору:
1. определение currency-map лучше вынести в функу в которой стоит обработать пару очевидных проблем: ответ не 200, в ответе не json, :Valute пустой или не валидный (тут уже на твое усмотрение, второе сложнее и дольше расписывать). Сам currency-map заполнять результатом работы этой функи что бы ошибки стреляли из единой точки входа в скрипт
2. хранить рейты в памяти перед отображением лучше в чем-то более точном чем float. ratio или decimal лучше подойдут.
3. округлять рейты только во время печати, никаких round фунок тебе не нужно.
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Oleg Roshchupkin
Это лучший вариант, да. Но ресурсоёмкость )
ну это полезные затраты, так как всё-равно надо описать структуру конфига, это нужно даже в первую очередь автору самому
тут это решено примером дефолтного конфига, но и то с оговорками
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Sergey Trofimov
ну поэтому я и предлагал, что просто надо спеку на инпут сделать, и ругаться что и как криво в инпуте, а сам код не мучать дурацкими проверками
спеку только вот зачем для этого тащить?
источник

OR

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

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
а хотя, это же бабашка
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Kirill Chernyshov
спеку только вот зачем для этого тащить?
по крайней мере какая-то спека в бабашке уже есть, так что не нужно ничего тащить
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
дада, я забыл что это про bb
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Kirill Chernyshov
в любом случае
автору:
1. определение currency-map лучше вынести в функу в которой стоит обработать пару очевидных проблем: ответ не 200, в ответе не json, :Valute пустой или не валидный (тут уже на твое усмотрение, второе сложнее и дольше расписывать). Сам currency-map заполнять результатом работы этой функи что бы ошибки стреляли из единой точки входа в скрипт
2. хранить рейты в памяти перед отображением лучше в чем-то более точном чем float. ratio или decimal лучше подойдут.
3. округлять рейты только во время печати, никаких round фунок тебе не нужно.
по 1 тоже проверять ответ на спецификацию 😊
а до 200 ответа не дойдёт, исключение будет
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
по 1 тоже проверять ответ на спецификацию 😊
а до 200 ответа не дойдёт, исключение будет
и складывать скачанное в файл, чтобы обращаться наружу только при устаревании 😊
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Sergey Trofimov
по 1 тоже проверять ответ на спецификацию 😊
а до 200 ответа не дойдёт, исключение будет
Мне кажется (надо бы проверить) но curl кинет эксепшон если код из 5хх
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Sergey Trofimov
и складывать скачанное в файл, чтобы обращаться наружу только при устаревании 😊
Обрабатывать задачу инвалидации кэша ? ) Может не надо?)
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Kirill Chernyshov
Мне кажется (надо бы проверить) но curl кинет эксепшон если код из 5хх
4xx точно тоже кинет
но даже если сервер ответит 200, но вернёт фигню, то нам от этого 200 ни жарко, ни холодно
поэтому нужно просто проверят, что пришло то, что мы ожидали
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Kirill Chernyshov
Обрабатывать задачу инвалидации кэша ? ) Может не надо?)
если рейты на текущие сутки считаются «вчера», то может и надо
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
в любом случае данные по рейтам обновляются не ежесекундно
при частом запуске скрипта глупо лазить за данными, тем более что процедура error prone
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Sergey Trofimov
если рейты на текущие сутки считаются «вчера», то может и надо
тут много если появится если нырнуть
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Sergey Trofimov
4xx точно тоже кинет
но даже если сервер ответит 200, но вернёт фигню, то нам от этого 200 ни жарко, ни холодно
поэтому нужно просто проверят, что пришло то, что мы ожидали
я расписал последовательность проверок, там учтено “ответ 200 и какая-то фигня в ответе”
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Kirill Chernyshov
тут много если появится если нырнуть
не знаю, не вижу проблем в простой проверке, что последнее обращение к ресурсу было менее часа назад
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
файловая система недоступна, ответ плохой но фаил протух по времени но доступен для чтения, итд
источник