Size: a a a

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

2020 October 13

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Alexey Cheremisin
макро нужно делать? или лучше не нужно? пусть будут не закрытые?
(defn func1 [handler context args value]
 (let [{skip     :skip
        first    :first
        order-by :orderby} args]
   (handler skip first order-by)))

вот так подойдёт?
источник

AC

Alexey Cheremisin in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
(defn func1 [handler context args value]
 (let [{skip     :skip
        first    :first
        order-by :orderby} args]
   (handler skip first order-by)))

вот так подойдёт?
да, спасибо! наверное пойдет.
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Alexey Cheremisin
да, спасибо! наверное пойдет.
и тогда можно будет делать (partial func1 handler1) итп
источник

AC

Alexey Cheremisin in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
и тогда можно будет делать (partial func1 handler1) итп
О! Супер, попробую сейчас заюзать! у меня просто с десяток функций выбора данных из DB с пагинацией....
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Alexey Cheremisin
Как сделать правильно? есть куча (с десяток) функций, которые используют в составе одинаковые параметры типа
(defn func1 [context args value]
   (let [{skip     :skip
          first    :first
          order-by :orderby} args
  ......]
  ....))
Можно ли каk-то вынести эти skip,first, ordered-by,чтобы не копировать в каждую ?
кстати, а почему не деструктурить args сразу как {:keys [skip first order-by]}?
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
(defn func1 [handler context {:keys [skip first order-by]}  value]
источник

AC

Alexey Cheremisin in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
кстати, а почему не деструктурить args сразу как {:keys [skip first order-by]}?
да, тоже верно, еще раз спасибо!
источник

AC

Alexey Cheremisin in Clojure — русскоговорящее сообщество
я не волшебник, только учусь... 😃
источник

AC

Alexey Cheremisin in Clojure — русскоговорящее сообщество
о, кстати, к вопросу аргументы или ключи на вход в функции? только что нашел такую статью... https://clojurefun.wordpress.com/2012/08/13/keyword-arguments-in-clojure/
источник

AC

Alexey Cheremisin in Clojure — русскоговорящее сообщество
вроде бы мне нагляднее ключи.... я в кложе совсем новенький, делать как удобнее?
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
кесарю — кесарево ) всегда от ситуации зависит
источник

IL

Igor Levdansky in Clojure — русскоговорящее сообщество
Недавно сталкивался со случаем когда в либе было сделано через аргументы и потребовалось добавить новый опциональный аргумент с дефолтным значением - переделал все на киворды
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Alexey Cheremisin
вроде бы мне нагляднее ключи.... я в кложе совсем новенький, делать как удобнее?
против ключей у меня только один аргумент - partial/comp не сделаешь :)
источник

АА

Алксан Аресир... in Clojure — русскоговорящее сообщество
То как в итоге это понял я.
Во-первых легко может быть разными.
И серверный роутинг позволяет добавить вещи, котоые могут на клиент отправить инфу нужную.
На клиенте роутинг позволяет делать сайт одним шаблоном html и условно одним скриптом cljs.
источник

АА

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

a

alex in Clojure — русскоговорящее сообщество
так это SPA? раутинг на клиенте же вообще другие цели преследует, не? типа показать другие вьюхи, а не сделать сюда же запрос на сервер
источник

АА

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

АА

Алксан Аресир... in Clojure — русскоговорящее сообщество
Но если ты сразу вроде введёшь какой-то адрес страницы, он может не отобразиться т.к. сервер ничего не вернул
источник

KR

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

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
ну или делать типа лендинги в который будет подгружаться жс спахи
источник