Fork me on GitHub
#clojure-russia
<
2016-12-05
>
andre08:12:15

@roman01la крутой воркшоп!

andre08:12:31

а в чем фишка что закрывающие скобки как комментарии цветом?

andre08:12:18

кстати я тут попробовал rainbow parentheses , психоделичненько

Roman Liutikov09:12:27

@andre: спасибо) эт ты запись смотрел?

andre09:12:42

ну да

Roman Liutikov09:12:52

Про цвет — это Parinfer подсвечивает

andre09:12:07

а он уже весь закончился? теперь только записи будут появляться?

Roman Liutikov09:12:27

Да, пока только часть залил

andre09:12:47

ясно, круто, надо как-то популязировать, хорошие ролики! в лямбда исланд такое только за деньги и на английском 🙂

Roman Liutikov09:12:24

У паринфера есть опция показывать возможное окончание формы, пока пишешь код, вот он и подсвечивает как комментарий. Но наверное эта подсветка работает для всего кода.

seryh09:12:35

что за ролики?

andre09:12:03

вот , я об этом говорю, народ то не знает 🙂

Roman Liutikov09:12:12

Надо, в Киеве аж 3 компании на Clojure пишут, насколько мне известно)

Roman Liutikov09:12:08

@seryh: на днях делали воркшоп по cljs, заливаю его понемногу сюда http://www.youtube.com/playlist?list=PLHOTezm7WWknZXg8IrRSRLZ-nIlpYUAyU

seryh09:12:53

о, круто

andre09:12:09

@seryh но там на канале есть еще серия видео по clojurescript

andre09:12:12

тоже интересно

seryh09:12:04

я в кложу уже двух джунов раздуплил. для всех на старте было самое сложное это настроить среду разработки и понять зачем нужен репл и как он участвует в разработке. с синтаксисом проблем на удивление не было )

seryh09:12:52

идея для темы ролика 😉

seryh09:12:38

с Atom редактором куча проблем это завести его под винду. из-за нодозависимости

seryh09:12:05

нужно поствить всякие вижуал студио, дев тулзы. чтоб плагины завелись

seryh09:12:59

джунов ставит в тупик

alexander_mihailov09:12:12

Обалдеть, а где это джунами в кложуристов берут? Не РФ поди?

seryh09:12:15

я тут у себя в конторке внедрил кложу под функциональные и селениум тесты

alexander_mihailov09:12:01

Еще и не моноязычная контора. Страна эльфов ) А положительный эффект измеримый от внедрения появился? Или всем пока нравится писать тесты "ну на этом, на лиспе".

seryh09:12:59

ну вначале тесты были на nodejs ) и погрязли в callback hell до неподдерживаемого состояния. так что положительный эффект был

alexander_mihailov09:12:44

то есть кложа дешевле, чем промиссы или асинк какой-нибудь?

seryh10:12:28

для тестов вообще круто. небольшой простой DSL, заводится на всех платформах так как JVM без всякой магии

seryh10:12:58

банальный быстрый ввод по синтаксису и можно давать фигачить тесты джуну

seryh10:12:06

с понятным кодом

seryh10:12:01

ну и REPL позволяет очень круто и продуктивно дебажить тесты в барузере

alexander_mihailov10:12:53

А часто приходиться в голую жаву руками тыкать или уже есть класненькие обертки для селениумного драйвера?

seryh10:12:08

только обертки

seryh10:12:12

джава не нужна

Roman Liutikov10:12:01

@seryh у нас верстальщики делают компоненты на Rum, вроде как быстро въехали

misha11:12:40

кого-то ждет сюрприз https://github.com/seryh/example-selenium-project/blob/master/src/example_selenium_project/tests/gosuslugi_reg.clj#L10-L13

(open-browser "")
  (try
    (type-text "hickey" ($ "#lastName"))
    (type-text "rich" ($ "#name"))

artemyarulin14:12:13

чота счас писал (fn[a](+ a 2) и задумался что может правильней (fn[a] (+ a 2) (доп пробел) и задумался на тему линтеров и прочих тулзов кто код стайл проверяет. Никто не юзает ничо? Я видел раньше, даже юзал но потом как-то забил

andfadeev15:12:23

я вообще везде пробелы ставить привык (fn [x] (+ x x)), ничем для код стайла не пользуюсь, если вижу косяк правлю, но обычно вроде норм

artemyarulin15:12:57

ну это не косяк, больше стиль да

artemyarulin15:12:12

о, надо позырить как в core

artemyarulin15:12:47

в коре пробел есть, ну ок rich

artemyarulin15:12:35

хотя core не самый идеальный пример, иногда и по 2 пробела (fn [x] (. clojure.lang.RT (count ~x))

andfadeev15:12:00

ну я имел ввиду косяк вплане как это эстетически выглядит для меня

malch17:12:00

@artemyarulin я использую всё simple_smile

artemyarulin17:12:21

подробнее?:)

malch17:12:31

:aliases {"quality" ^{:doc "Check code quality"}
            ["do"
             ["test"]
             ["kibit"]
             ["eastwood"]
             ["bikeshed"]
             ["cljfmt" "check"]]}

malch17:12:56

как-то так в рабочем проекте

malch17:12:09

ну и во всех относительно важных

artemyarulin17:12:43

о найс, данкише!

malch17:12:04

там дальше есть разные подводные камни

malch17:12:16

с false positives, настройками и тд

malch17:12:31

но инкрементально все неплохо работает

artemyarulin17:12:40

может у тебя есть где оперсорс проект чтоб посмотреть чо как с подводными камнями?

malch17:12:13

:eastwood {:exclude-linters [:constant-test
                               :suspicious-test]
             :continue-on-exception true
             :config-files ["eastwood.clj"]}
  :cljfmt {:indents {try+ [[:block 0]]
                     for-all [[:block 1]]
                     let-flow [[:block 1]]
                     fnp [[:inner 0]]}}

malch17:12:16

оттуда же

malch17:12:02

и eastwood.clj:

malch17:12:09

(disable-warning
 {:linter :suspicious-expression
  :for-macro 'clojure.core/case
  :if-inside-macroexpansion-of #{'clojure.core/defrecord}
  :within-depth nil})

(disable-warning
 {:linter :suspicious-expression
  :for-macro 'clojure.core/condp
  :if-inside-macroexpansion-of #{'clojure.core/defrecord}
  :within-depth nil})

(disable-warning
 {:linter :suspicious-expression
  :for-macro 'clojure.core/and
  :if-inside-macroexpansion-of #{'clojure.core/defrecord
                                 'clojure.spec/coll-of
                                 'clojure.spec/map-of
                                 'clojure.spec/keys*}
  :within-depth nil})

malch17:12:03

в целом алгоритм простой - добавляешь линтер, смотришь на чем падает

artemyarulin17:12:17

логично 🙂

malch17:12:21

и либо фиксишь код, либо фиксишь линтер

artemyarulin17:12:22

aliases “quality” понравилось названия алиаса :thumbsup:

artemyarulin17:12:54

ты его руками запускашь или он достаточно стабильный чтоб как часть CI делать?

malch17:12:10

часть CI у меня

malch17:12:33

причем у меня “жесткие” настройки в github стоят

malch17:12:46

в master push запрещен

malch17:12:56

только через pull request

malch17:12:11

а его смержить нельзя, если упал билд

malch17:12:55

к стабильности вышеперечисленных плагинов у меня никаких претензий нет

artemyarulin17:12:34

во, мега круто

malch17:12:44

вот для boot, кстати, если кому понадобится https://github.com/tolitius/boot-check

artemyarulin17:12:35

https://github.com/venantius/yagni а этот не пробовал еще?

malch18:12:49

пробовал

malch18:12:53

но тут сложнее

malch18:12:08

море false positive

malch18:12:44

и нужно самому ручками в файлик добавлять точки входа

malch18:12:53

+ не умеет мультиметоды разбирать

malch18:12:07

в общем, смотри сам simple_smile

malch18:12:39

yagni можно изредка запускать как раз руками чтобы найти dead code

malch18:12:58

но для CI он не подходит имхо

artemyarulin18:12:51

ок, попробую сначала из твоего конфига. Дак кста как у тебя в итоге (fn [a] (+ a 2) или (fn[a](+ a 2)? 🙂

malch18:12:05

первый вариант

artemyarulin18:12:14

ок, спасиб

malch18:12:32

тем более в spacemacs он это приятно показывает

malch18:12:41

(понятно, что и в чистом emacs можно настроить)

malch18:12:08

согласен, мой комментарий про pretty symbols был не совсем по делу

malch18:12:19

но с пробелами читать проще

malch18:12:33

мне кажется

artemyarulin18:12:42

дада, согласен

artemyarulin18:12:20

ага, найс. А вот кста может есть команда какая в твоем емаксе чтоб автоматом все отформатировать под нужный конфиг cljfmt?

malch18:12:31

если я не ошибаюсь, cider-format-buffer

artemyarulin18:12:22

ааа, вот оно чо - я всю жисть юзал C-x h TAB а это просто ident-region, а надо было цидеровский дергать, век живи - век учись. Спасибо

malch18:12:44

рад помочь 😃