This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-03-07
Channels
- # admin-announcements (5)
- # aws (2)
- # boot (313)
- # cider (69)
- # cljsfiddle (18)
- # cljsrn (17)
- # clojars (6)
- # clojure (121)
- # clojure-austin (4)
- # clojure-bangladesh (4)
- # clojure-colombia (2)
- # clojure-dusseldorf (17)
- # clojure-japan (1)
- # clojure-russia (65)
- # clojure-sg (4)
- # clojurescript (94)
- # community-development (6)
- # core-matrix (2)
- # cursive (2)
- # data-science (6)
- # datomic (28)
- # hoplon (4)
- # jobs (1)
- # jobs-discuss (1)
- # keechma (15)
- # ldnclj (2)
- # off-topic (6)
- # om (140)
- # om-next (1)
- # onyx (47)
- # parinfer (11)
- # re-frame (13)
- # reagent (4)
- # spacemacs (7)
- # specter (7)
- # yada (18)
Дорогой чатик, подскажи, вдохнови на как убрать :quality
красиво отовсюду из такой структуры?
[{:id 1 :quality 1 :fallback {:id 3 :quality 3}}
{:id 2 :quality 2 :fallback {:id 4 :quality 4}}
{:id 3 :quality 2}]
что-то у меня выходит не очень красивые решения всевспомнил золотое правило - когда рекурсивно надо обработать структуру clojure.walk is an answer:
(walk/postwalk #(if (:quality %)
(dissoc % :quality)
%) m)
ага, крутая штука и часть стандартной либы. Пересекается идеями с зипперами
то есть у нас независимый repl который делает (refresh) когда положено, и смотрит какие тесты сломаны
test-refresh is a Leiningen plug-in that automatically refreshes and then runs your clojure.test tests when a file in your project changes
вообще, парни, я тут стал фанатеть от midje с такой крутяцкой штукой не приходилось в жизни сталкиваться
@rmuslimov: Эм, не оч понимаю чем оно отличается от clojure.test. Какую проблему решает? Ну акромя этих auto-test-on-change
я могу ошибаться, и плохо знать clojure.test (да и тот же midje), но я так понимаю что в midje - удобнее мокать функции (потому мокать можно в зависимости от параметра), - можно самому собирать эти проверки checkables, или использовать тот огород что уже есть типа =>, =contains=?, anything - удобный и гибкий setup, teardown - читать репорт и видеть чем отличаются структуры тоже удобнее (хотя тут я наверное не разобрался до конца с clojure.test) - метаконстанты - фолдинг круто работает в emacs - я пока не понял как проверять с clojure.test c called_with, called_times - а там оно прям быстро из коробки - доков много у midje, стартовать легко
и как то у меня получилось раза в два меньше кода из за этого сахара который есть в midje
@rmuslimov: Хм, интересно. Кто-нить еще в этом чатике юзает midje?
еще вот пишут что midje отличается от clojure.test что поощряет разработку сверху вниз ( то есть пляшем от того что должно получиться на выходе), за счет тех же метаконстант и крутых моков видимо
хм, а это канонично? Мне казалось при фукнциональном программинге чаще подход снизу-вверх, соответсвенно никаких моков и всего такого
у меня может проектики все простые, но как-то моки прям дико для меня звучат
чтобы быть уверенным, что я не сведу его с ума - я мокаю метод который делает bulk api - я проверяю с чем я его вызывал
наверное можно так организовать код, чтобы из без моков обойтись, но по-моему это сильно удобно
хм, ну может быть, у меня опыта маловато и сервисы простые все, без моков вообще удается. Может народ прокоментит? Хочется знать кто как делает, признавайтесь кто мокает?:)
> Мне казалось при фукнциональном программинге чаще подход снизу-вверх хаскелисты за top-down обычно топят, использую unimplemented для того, что ещё не реализовано, но что типизируется
Пока никак не мокаю, в кложе недавно, но вот кстати мне привычнее/удобнее сверху - вниз, от задачи по модулям вниз в реализацию. И на текущем уровне погружения после жавы даже читать код примеров / либ непривычно - вот функция, и еще, и еще - ну ок, и пока до конца файл не дочитаею - не понятно - нафига они здесь ))) А часто что и к началу неоднократно отлистываю, и поиском ищу где оно еще юзается. Возможно, еще поворота майдсета не случилось )) Мидж видел что есть, но не вникал - спасибо, теперь буду посмотреть
ну тут еще кложура - name hoisting (или как там называется это) нету, поэтому точка входа может быть в конце да
ну вот я как раз и спросил кстати про подход - потому-что либы читаешь снизу-вверх почти всегда
тьфу, т.е. подход снизу-вверх, а читаешь получается сверху-вниз
Мы использовали midje, но конвертнулись обратно - слишком много магии. Хотя эмбедед тесты хорошая идея.
прикольный функционал, смотреть решения других участников, еще раз доказывает, что в кложе множество вариантов решения одной задачи, и все время не покидает ощущение что можно еще проще и оптимальнее
но интересно было бы посмотреть статистику по решениям, к сожалению не нашел там такого
вот там где график со статистикой по решениям, круто было бы посмотреть код по клику на статистику
Ахаха, а я, как дурак, решал с использованием только того, что было объяснено в предыдущих задачах.
@andre: там самая жесть начинается на сложных задачах. у меня было очень неловкое чувство, когда я смотрю чужие решения и кто-то написал решение в 5-10 раз короче моего
а я нагуглил репу с решениями ._.
ну с решениями это не интересно, интересно именно после решения посмотреть статистику кто как решал, и как советует решать сам автор задачи
а мне говорят у тебя нет друзей мы тебе не покажем
@andre: так а как ты собирал эти ответы? у меня показывает ответы других людей. а у тебя - так чисто из этого чатика )
там показывают ответы только фоловеров, вот я и зафоловил чатик и парочку из топа. неплохая выборка получилась, а как посмотреть ответы других людей, не из фоловеров?
@fxposter: расскажи секрет как подходил к решению? у тебя всегда очень лаконичные ответы
по поводу решений - это было пару лет назад, уже не помню. но наверное сказывался опыт в руби (ожидаешь наличие всяких функций типа odd?) и наверное поиск по clojuredocs конкретных названий.
конкретно в том, что ты запостил - большинство людей там пыталось вставить ровно одну форму - отсюда всякие (partial filter odd?), но если на это посмотреть не как на “формы”, а как на подстановку текста - то становится понятно, что скобки и partial в этом конкретном примере можно опустить.
кстати, вот забавно - слежу я параллельно за elixir-комьюнити в слаке. если сравнить канал “clojure” и их “general” - получается примерно одинаковое число людей. при этом в “russian” у них ну совсем глухо.
@andre: а там никак не посмотреть, если не фолловеры. я просто на https://www.4clojure.com/users тоже отмечал знакомых людей) Кстати, там одна задача middle уровня (про число скобочек) на самом деле одна из самых сложных на 4clojure, я ее пропустил и вернулся через какое-то время. Ну и еще несколько задач таких было, которые сложно было прямо сразу решить. Как некоторые умудрялись за неделю все прорешать - не пойму