Fork me on GitHub
#clojure-russia
<
2016-08-16
>
yashaka00:08:34

я вот как то просто игрался, пробовал на клоуже какие то примеры веб тестов пописать…. не пошло… мне кажется клоуже такой язык который способствует вдумчиво писать код… именно поэтому в клоуже не так популярны IDE а тесты должны быть простыми по максимуму, там в контексте реализации - думать нечего, никакой алгоритмичной логики… И поэтому, когда нужно колбасить по быстрому тесты - мне реально помогает autocompletion в IDE, который на пару с ООП стилем очень удобный… с таким ООП + IDE подходом очень удобно локализировать сложные элементы, типа:

$$(“#todo-list li”).findBy(text(“do something”)).hover().find(“.destroy”).click()
это код с использованием селенидовского $$ - который по селектору ищет коллекцию элементов в этом куске кода мы находим все задачи в списке, потом выбираем из него задачу с нужным текстом, наводим на нее мышку что бы появился крестик удаления, находим внутри задачи эту кнопку-крест-удаления и кликаем по ней… в клоуже что то такое выглядело бы как то так:
(-> (Selenide/$$ “#todo-list li”) 
    (.findBy (Condition/text “do something”)) 
    (.hover) 
    (.find “.destroy”) 
    (.click))
Я как то поигрался, и не получил того удовольствия которое я получаю в Intellij Idea + Java + Selenide Мне показалось что в этом случае “класический ООП стиль" удобней… хотя может просто стоит привыкнуть...

yashaka00:08:57

и вот я думаю… что мне таки не хватает автокомплишена в кложуре, мне нравиться разбираться с библиотеками в процессе написания кода, а не сначала чтения документации а потом написания кода с постоянными возвращениями в доку... прикольно когда можно на ходу узнавать что там за функции, проваливаться в сорсы, ковырятся в доках… я так понимаю нормального умного автокомплишена нигде для кложуры нет? или что то есть где то?

maxim01:08:03

cider есть

maxim01:08:33

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

maxim01:08:47

emacs - наше все

chort40901:08:00

@yashaka: https://cursive-ide.com/ тут тебе и автокомплишен и другие вкусные штуки

seryh02:08:25

@yashaka: clojure REPL + selenium не потрогал? не нужно ждать вечность что бы проверить свой маленький фикс к большому сценарию. не знаю как после этой связки можно вернуться к написанию селениум тестов на чем то другом

maxim02:08:53

Поделитесь, пожалуйста, кто как компилирует javascript (не cljs) из clojure.

maxim06:08:49

Never mind.

yashaka07:08:43

@mkaschenko, @chort409 спасибо, как то нужно попробовать, хотя может с целью посмотреть как у других, и накрутить что то похожее в лайт тейбле)

yashaka07:08:18

@seryh: вот нужно попробовать наверное… пока сложно представить насколько бы мне это помогло, пока такое чувство что и не нужно особо было… в руби тоже можно “реплить”, я когда на нем такие тесты писал не сильно пользовался… наверное без сравнения сложно представить… нужно пробовать…лайттейбл то я люблю за репл как раз…

artemyarulin07:08:04

репл надо прочувствовать - у меня первые пол года тоже было: Фе, в ноде/питоне/руби/даже_с# есть репл и чо. А потом проникся. И особенно для силениум тестов - когда у тебя большой селектор отвалился, а в репле ты можешь по быстрому прогнать его по кусочками эта по мне мега круто

comerc07:08:23

@yashaka: а я LightTable полюбил за вывод ошибок. Atom так не умеет.

comerc07:08:44

@artemyarulin: все дело в волшебных пузырьках - i.e. чистые функции. 🙂

artemyarulin08:08:17

@comerc: а чо там такого в LT про вывод ошибок?

andre08:08:14

а есть почитать (посмотреть) про селениум и репл?

seryh08:08:39

а что там читать, подключаешь clj-webdriver, пихаешь в атом driver, и юзаешь его через репл как хочешь, как свой родной браузер. переодически накидывая в код отлаженные тесты

seryh08:08:54

можно было бы кстате на хабр вкусную статью по этой теме написать. с гифками

seryh08:08:57

репл там реально крут

seryh08:08:35

у меня еще по профайлерам селениум и фантом. отладка в селениуме, потом компилится в jar с фантомом. и можно запускать на серваке без иксов

andre08:08:14

спасибо

andre08:08:19

то что надо

comerc08:08:08

@seryh: напиши пажаласта! 🙂

seryh08:08:36

я там read only, да и ленив для этого

seryh08:08:50

стар я уже, отбиваться от скобочкофобов в комментах

comerc09:08:21

@artemyarulin: ^^ разворачивает блок со стеком ошибки прямо под строкой. в Atom нужно смотреть в соседнее окошко с консолью REPL. и в вашем емаксе такая же фигня, насколько я понял по видеороликам.

comerc09:08:48

@seryh: я возьмусь проксировать! 🙂

artemyarulin09:08:05

ога, ошибки обычно в репле отдельно. Тут круче согласен

comerc09:08:01

это убер-удобно! не надо переключаться туда-сюда

seryh09:08:40

попробую накидать на недельке

comerc09:08:29

@artemyarulin: из-за этой фишки я прощаю в LightTable многое! тоскую за Atom.

andfadeev09:08:57

а копировать из этого сообщения об ошибке можно? в емаксе открывается новый буфер со стектрейсом, курсор сразу там, можно нажать q и закрыть и вернуться туда где был

andfadeev10:08:01

+ стектрейс можно фильтровать

andre10:08:15

курсив вложился

comerc10:08:38

@andfadeev: копировать можно по Ctrl+C, если выделить мышкой. 🙂 и еще там есть контекстное меню "copy exception". а чтобы закрыть сообщение с ошибкой, можно в конце строки нажать backspace, как бы стирая закрывающую скобочку, но она опять появится из-за parinfer, а курсор окажется перед ней; ну или на новой строчке если открыть скобочку, то сообщение об ошибке тоже пропадет.

comerc11:08:00

и мышкой не выделить в основном окне, что подсвечено белым

comerc11:08:49

т.е. REPL нужно все время держать открытым

artemyarulin11:08:48

в емаксе так-же по сути

comerc11:08:51

в атоме еще нашел вкусненькое: можно развернуть результат (полезно на вложенных структурах), все закрывающие скобочки серые!

comerc11:08:53

@artemyarulin: ну в принципе на node.js у меня тоже всегда консоль была открыта для отслеживания ошибок. только на отдельном мониторе - это минус хоткеи.

andfadeev11:08:13

@artemyarulin: в емаксе ошибки в отдельном буфере же, а не только в репле

artemyarulin11:08:16

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

andfadeev11:08:24

не могу смотреть как на гифке открывается несбалансированная скобка

comerc11:08:13

@andfadeev: 1) а зачем ошибки в отдельном буфере? 2) несбалансированная скобка - это где?

comerc11:08:45

что-то я поигрался с атомом, хочу вернуться. мы были щастливы вместе 🙂

andfadeev11:08:21

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

seryh11:08:50

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

seryh11:08:13

возможно она включает сбалансированные скобки

andfadeev11:08:19

вероятно)

comerc11:08:34

о чем вы говорите - не пойму

seryh11:08:16

защита от незакрытой скобки

comerc11:08:24

в окне REPL-а?

comerc11:08:55

все, я понял

comerc11:08:28

Atom для меня умер окончательно 🙂 https://github.com/jasongilman/proto-repl/issues/146#issuecomment-240078214

comerc12:08:10

@andfadeev: 1) видимо нужно попробовать, чтобы понять, как это удобно

comerc12:08:11

@andfadeev: а запиши коротенькое видео с демонстрацией, пажаласта! 🙂

andfadeev12:08:01

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

andfadeev12:08:55

а вот дока по этому минибуферу http://cider.readthedocs.io/en/latest/navigating_stacktraces/

comerc13:08:44

а вот что я нашёл - Spacemacs с человеческим управлением из ErgoEmacs https://github.com/syl20bnr/spacemacs/issues/1298

dragoncube18:08:46

возвращаясь к тестированию, а насколько проблемно селениумом тестировать реагентовские приложения?

dragoncube18:08:14

есть различия если драйвер фантом или chrome ?

kishanov19:08:51

Ребята, если тут кто в Bay Area, CA и хочет пописать в стартапе фронтэнд на ClojureScript/Reagent/Re-frame - черканите в личку

kishanov19:08:37

Мы его уже 2 года пишем, хотим расширить команду

comerc20:08:34

Голосуйте за форум, пажаласта! https://github.com/clojure/clojurescript-site/issues/14

rmuslimov23:08:10

а что за темплейт в lein который генерирует A Clojure library designed to ... well, that part is up to you. ?