This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-04-14
Channels
- # admin-announcements (5)
- # aws (3)
- # beginners (35)
- # boot (96)
- # cider (1)
- # clara (6)
- # cljs-dev (12)
- # cljsrn (34)
- # clojure (151)
- # clojure-boston (3)
- # clojure-brasil (4)
- # clojure-canada (1)
- # clojure-czech (8)
- # clojure-dusseldorf (11)
- # clojure-japan (5)
- # clojure-russia (120)
- # clojure-taiwan (1)
- # clojure-uk (3)
- # clojurescript (7)
- # component (27)
- # cursive (13)
- # data-science (45)
- # datomic (1)
- # devcards (5)
- # emacs (3)
- # funcool (65)
- # hoplon (103)
- # instaparse (3)
- # jobs (14)
- # jobs-discuss (1)
- # juxt (2)
- # lein-figwheel (2)
- # off-topic (16)
- # om (20)
- # onyx (49)
- # parinfer (17)
- # perun (1)
- # planck (5)
- # proton (4)
- # re-frame (14)
- # ring-swagger (4)
- # spacemacs (4)
- # untangled (110)
- # yada (14)
Ребят, у меня к вам небольшая просьба. Я готовлю доклад Full stack Clojure в production
на митап в своем городе (целевая аудитория - в основном JavaScript разработчики) и специально для него я написал небольшое веб-приложение. Поддержите, пожалуйста, звездочками на гитхабе. https://github.com/abtv/tech-radar . В описании на гитхабе (в readme) вы найдете ссылку на работающее приложение. Он еще сыроват (особенно фронтенд), но в целом работает.
Если кто-нибудь отпишется - будет вообще круто. интересно все: замечания по коду, функционалу и т.п. Единственное, фронтенд совсем сырой, планирую мигрировать на Om.next с queries и т.п., но времени пока не хватило. Я написал его по сути за 4 выходных.
@abtv: А точно ом-некст хочешь показать ко всему в добавок? Даже в этом чатике (тем кто CLJS уже знает) ом показался сложным, может чо попроще?
Всём привет. Есть вопрос странный) если использовать реакт as is, без кложаскрипта и оберток, что там есть на подобие re-frame? Ну или что-нибудь другое, повыше уровнем, чем сам реакт
да, я пока без ом.некста покажу. планировал и его, но не успел еще. я om.next как либу подключил в project.clj, а написал все примерно как в реагенте. не очень красиво, зато получил минимально работающее приложение. я кучу времени угрохал на работу с этой либой для твиттер апи: https://github.com/adamwynne/twitter-api - на моей машине все ок, а после деплоя часто не работало. в итоге бросил ее и переехал на https://github.com/twitter/hbc за полчаса . вот кто ж знал, что clojure либа хуже java либы (правда официальной)? @artemyarulin
@shinych: Там куча же - есть всякие flow, мне нравиться redux
https://www.youtube.com/watch?v=gsffg5xxFQI вот этот доклад пример хороший презентации для js
@abtv: Понял, ага. Надо тебе rum тоже позырить
собственно, главное опасение с кложей, если показывать код - то примерно через 5 мин перестанут понимать о чем речь
https://www.dropbox.com/s/3rqi7ew30t4qgpy/Screenshot%202016-04-14%2000.16.25.png?dl=0
@artemyarulin: да, я смотрел на Rum: простой, маленький. Дело в другом: мне доклад Дэвида понравился про ом.некст, вот и хочу что-нибудь на нем написать.
и второй момент, правда не имеющий отношения к ом.некст: для начинающих разработчиков в clojure/clojurescript (особенно тех, кто не в команде из опытных программистов), очень большая проблема с тем, чтобы найти примеры кода. я вот хочу написать open source проект, в котором можно было бы посмотреть как пишутся те или иные вещи. просто у меня пока опыта не много, а желание это сделать есть
понял, доклад у него классный и идеи очень стоящие да 👍
@abtv: как сделаешь что-нибудь, дай знать. Опубликую ссылку на http://clojurescript.ru :)
@abtv: я когда делал доклад по cljs для js разработчиков, то код показывал совсем мало и всегда сопоставлял его аналогам на js. Так хотя бы понятно, что происходит.
@roman01la: ok и спасибо за совет
@roman01la: ты не против, если я у тебя в качестве преамбулы вот это стащу https://clojurescript.ru/comparison/ ?
@abtv: да, конечно :)
@artemyarulin: спс! Про кучу понятно, просто практического опыта никакого, а вот понадобилось
мне вот этот доклад понравился, доходчиво для js, но можно слышать по комментариям из зала, что народ не понимаем зачем им это нужно
я общаюсь в московском js сообществе, много друзей в js, и для них это что-то чужеродное, из вне, когда показываешь им они смотрят как на китайскую грамоту и думают ну это чето парень там экспериментирует, зачем нам надо это, js сообщество идет своим путем - редукс, силус, вебпак, так что cljs больше для бэкенда идущего во фронтентд
кстати я это написал не посмотрев ссылку на дропбокс, но да именно так смотрят js разработчики , когда показываешь им cljs
а я наркоман и тащу cljs в системные скрипты ._.
вместо питона
точнее пытаюсь
@lowl4tency: ну как то критике надо противостоять, на мой взгляд питон рожден для системных скриптов
тут есть один хороший бонус от cljs
если в команде его умеют все, то все способны взять и поправить
или сделать свое новое
а не ждать когда чувак со знанием питона проснется, освободится
и не надо учить питон
на ноль делить нельзя
основной язык кложа просто, ну питон простой да, но я уверен что многие предпочтут подождать и не лезть
плюс мне кажется что node побыстрее
я же экспериментирую, если не получится то напишу
если получится то тоже напишу )
зато какой классный доклад можно сделать потом
у нас был риман )
кстати, надо запилить чтоли для сайд проджекта
а мы его использовали как форвардер в датадог
запилили напрямую с приложухи в агент слать метрики
@andre: я был при записи этого видео) я почему и решил сделать доклад про clj и cljs вместе со следующими утверждениями: 1. писать можно и бэк и фронт на одном языке. 2. релоадить можно как фронт, так и бэкэнд и так приложения пишутся очень быстро 3. если юзать core.async для асинхронщины, то код получается читаемее 4. на clj удобно писать обработку данных (хорошая производительность и читаемость/поддержка кода) 5. код = данные 6. хоть ES2015 и улучшил js, все равно clojure более цельный язык и код покороче и попроще
7. можно юзать либы из java и js: я в этот проект включил twitter/hbc и dimplejs, даже и без врапперов
@abtv: Ну вот надо сказать, что асинхронщина на ES6 уже хорошо пишется, с function*
и yield
.
Там, где я работаю, есть своя библиотека на джаваскрипте для асинхронных операций. На ES5 это было неприятно: кучи функций, не в виде "лесенки", но код разбивался на части, а в ES6 стало приемлемо: yield из цикла можно сделать, try/catch использовать etc.
@dottedmag: это да. наверное, у cljs есть преимущество в том, что в асинхронных процессах ходят неизменяемые данные (ну если сам не положил туда мутабельные данные). или это не проблема?
парни, а как правильно именовать namespaces? например, взгляните, вот тут https://github.com/abtv/tech-radar/tree/master/src/clj/tech_radar/services есть loader
, processor
, saver
- это pipeline такой. мне резонно сказали, что это не есть гуд. я тут вижу, что из названия не понятно, что там грузится, как обрабатывается и как сохраняется.
но совсем специфично же не очень хорошо тоже будет? как бы вы назвали это? как вы называете свои компоненты? выносите ли отдельно сервисные функции в другие пространства имен? может у вас есть примеры в открытом доступе?
это можно, я просто вот этого начитался https://stuartsierra.com/2016/01/09/how-to-name-clojure-functions @a.espolov
заказывали у чувака фронт-енд он им его не сделал, так они решили на следующем этапе заказать у 3-их и выбрать из них одного)
ну во-первых, я хотел бы и сам лучше писать, а во-вторых, совсем уж начинающим кложуристам помочь - дать небольшой проект, а потом к нему доку/пару статеек написать ) @a.espolov
Вот эталонный доклад про ClojureScript https://www.youtube.com/watch?v=bR-sJAI2Mts 😄
“Новому человеку не нужно говорить что будет ClojureScript, когда он придет надо ему сказать что мы пишем на таком фрейморке жаваскрипта, у него чуть другой синтаксис”(с) 😄 😄
Интересно что я видел этот ролик 2 (3?) года назад, когда еще не думал ни о какой кложуре и лиспах и вот на тебе - в этом чатике
т.е. своей цели он добился
Да, он)
@asolovyov: вообще респект за стиль
@abtc: Андрей, а ты разбирался с клиентским приложением tech-radar? смотрю там om-next используется, но в упор в исходниках парсера не вижу
@a.espolov: не, там все очень примитивно пока, от ом.некста только название, к сожалению, руки не дошли еще, делал минимально рабочую версию. планирую доработать с запросами, парсером, убрать рест с сервера.
@a.espolov: кстати, а ты разобрался с ом.некст?
кидает ошибку Caused by: java.io.FileNotFoundException: Could not locate clojure/tools/analyzer/passes__init.class or clojure/tools/analyzer/passes.clj on classpath., compiling:(clojure/core/async/impl/ioc_macros.clj:1:1)
ты untangled использовал или "чистый" ом? @a.espolov
а почему так:
user=> (filter #(complement (nil? %)) '(1 nil 2))
(1 nil 2)
по отдельности все работает, вместе -- нет. я способ убрать nil нашел лучше конечно, но в чем здесь проблема, не понять...а если говорить про то как решить, то в данном случае тебе, видимо, нужно (keep identity [1 nil 2])
(filter (complement nil?) [1 nil 2])
хотя keep красивше да
@fxposter: респект, я не догадался до этого
я и сделал через remove, а про вопрос: елкимоталкисеменсеменыч спасибо, с вызовом напутал
@andmed: Любопытно - почему у тебя лист? `(1 nil 2) а не вектор?
нене, не важно