This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-05-25
Channels
- # aws (2)
- # beginners (57)
- # boot (31)
- # carry (15)
- # cider (9)
- # cljs-dev (9)
- # cljs-experience (32)
- # cljsrn (94)
- # clojure (129)
- # clojure-dusseldorf (3)
- # clojure-greece (4)
- # clojure-italy (8)
- # clojure-norway (3)
- # clojure-russia (344)
- # clojure-sg (39)
- # clojure-spec (2)
- # clojure-uk (39)
- # clojurescript (84)
- # core-async (99)
- # cursive (10)
- # data-science (1)
- # datascript (4)
- # datomic (66)
- # emacs (10)
- # graphql (4)
- # hoplon (28)
- # jobs (15)
- # luminus (3)
- # lumo (5)
- # off-topic (23)
- # om (4)
- # onyx (32)
- # pedestal (24)
- # re-frame (2)
- # reagent (7)
- # ring-swagger (32)
- # spacemacs (4)
- # untangled (57)
- # utah-clojurians (1)
нормально у вас тут припекло… чтобы поднять всем настроение, скажу что у кожуры в комьюнити с самооценкой еще цветочки: вот на лямбдаконфе на доклады пускают только если ты - функциональный эльф нужного уровня (http://lambdaconf.us/downloads/documents/lambdaconf_slfp.pdf)
вот например на эту сессию (http://lambdaconf.us/events/2017/schedule/lcusc.html#friday) не стоит суваться, если сосочки твердости не ниже чем 3й уровень
https://www.youtube.com/channel/UCEtohQeDqMSebi2yvLMUItg/videos Они еще и комментарии к видео отключили. С чего бы? 😀
Какие хорошие блоги по Clojure можете посоветовать? Мне вот нравится https://juxt.pro/blog/index.html
@y.khmelevskii с какой целью интересуешься?™
мне нравится как мартин пишет: коротко и по-делу https://www.martinklepsch.org/
@misha в образовательных целях. для изучения clojure/clojurescript
@y.khmelevskii есть несколько интересных, но обычно там или супер-редко пишут или давно уже не писали
@misha книжку вот дичитываю, основы вроде есть, уже что-то получается(как мне кажется).
@roman01la а можешь кинуть эти линки или сюда или в личку?
@y.khmelevskii http://brownsofa.org/ https://www.niwi.nz/ http://hypirion.com/musings/
добавлю про микросервисы я у себя на работе стал внедрять микросервисы как раз с мая прошлого года за это время у нас уже их девять штук у нас в разных проектах используются типовые решения поэтому либо копипаста, либо шаренные библиотеки с шаренными библиотеками геморройно в поддержке с копипастой тоже всё понятно а микросервисы вписываются очень хорошо по многим соображениям в общем, мне нравится
только у меня видение микросервисов свое, те статьи, что пишут в интернете про микросервисы, меня обычно пугают своей сложностью
> за это время у нас уже их девять штук 4 на скале и 5 на кложе ну и всё это на JVM крутится, конечно
дак с микросервисами в итоге то что - копипаста или шареные либы? Или все не типовое и ничего не шарите?
а мелкий код, недостойный микросервиса, и копипаста и либы но либы усложняют поддержку приложений, так что есть только одна нужная либа, которая обеспечивает микросервисное взамодействие 🙂
можно и мелкими библиотеками, но хорошую библиотеку писать не проще, чем микросервис.
и внесение изменений в библиотеки требует пересборки приложений, что ощутимо сложней, чем обновление микросервисов
опять же с библиотеками ничего не мешает иметь запутанный код, он только вынесен в библиотеки ну, немного меньше запутанности, конечно, так как библиотека не может позвать код приложения
> ну и девелопить в такой среде то ещё удовольствие вот я и рассказываю, что в такой системе на практике trade-off меньше получается
если, допустим, реквест приходит, и его обрабатывать начинают разные сервисы, и чота медленно
> а как тесты профайлить/трейсить систему помогают? не знаю, надо посмотреть на конкретную проблему, о которой возник вопрос у меня возникает непонимание, что от меня хотят услышать 🙂
> как трейсите, чтобы найти козла, что тормозит и тд ну, для такого правильно мониторинг надо настравивать
> вот я и рассказываю, что в такой системе на практике trade-off меньше получается основное усложнение — необходимость продумывания АПИ до реализации на самом же деле я считаю, что продумывание до реализации (а не во время) — важно всегда, даже в монолите
> как трейсите, чтобы найти козла, что тормозит и тд но у меня на практике разделение функциональное, несколько инстансов не отвечают за один и тот же входящий поток данных. не было ещё таких мега нагрузок а если и были, то разделялись еще на подходе
@serioga мой вопрос где-то сверху остался, я его перефразирую - вот теперь когда стало много микросервисов, расходы на то, чтобы сервисы между собой договорились не больше стало?
нет, не стало их не много просто приложение стало состоять из кубиков причем набок кубиков для разных приложений разный
то есть нужен мне функционал в приложении, то в комплект добавляется сервис и из приложения я к нему хожу вся зависимость между приложением и сервисом — это АПИ (набор функций)
всякое service discovery, zookeeper и тому подобное — это слишком сложно 🙂 есть rabbitmq сервер есть приложение и сервисы, подключенные к кролику и обращаются они друг другу вежливо по имени
то есть с точки зрения приложения разницы нет, ходить ли к фейсбуку с вопросами, или к собственному сервису
может у кого-то и есть такие приложения, которые ни с какими внешними сервисами не взаимодействуют, и разбивка на сервисы будет усложнением но это явно не мой случай
была необходимость из PHP ходить, сделали прокси приложение, чтобы делать запросы к сервисам по http
чота я не понял - кролик этож про очереди. Т.е. если сервису А нужно дернуть Б то он в спец канал положит запрос так чтоль? А ответ куда/как получать?
rabbitmq решает вопросы service discovery, доставки сообщений и авторизации доступа к сервисам
да он про авторизацию только
ааа ну оооок
ну хорошо, не в чистом виде, а вместе со схемой взаимодействия сервисов т.е. достаточно наличия подключенного к системе сервиса (в любом количестве экземпляров), чтобы адресовать запросы по имени сервиса
ну прикольно кста - можно про хттп не париться
дебажить чота такое стремно. Хотя с другой строно когда все распределенное то уже ничего не поможет 🙂
а неожиданные непредусмотренные ситуации они при любой архитектуре возникают, так что сам процесс разработки должен предусматривать возникновение неожиданностей
чтобы было понятно, о какого рода сервисах в моем случае идет речь: пуш уведомления на apple пуш уведомления на google создание уведомлений на Facebook модуль сбора статистики (мини game analytics) центр уведомлений (это для игровых проектов, для уведомлений пользователям) IP-geolocation backend-user storage (простенькая система backend пользователей с ролями и пермиссиями)
а никто midje тесты к jenkins не прикручивал? нужно чтобы jenkins понимал что тесты зафейлились, а lein midje не возращает 0/1 как процесс. Как научить?
решил тем, что добавил в свой midje плагин вызов (leiningen.core.main/abort)
когда есть тесты с фейлами - этот метод потом вызывает (exit 1)
пытался на проекте продавить кроля, но у нас такая специфика что каждый сервис еще публичное апи имеет и кастомер не особо понимает нафиг еще депенденси на mq
ну а кста какие плюсы действительно?
все кста завязано на один сервак очереди - он помрет, все ляжет. С хттп и серверами отдельными все положить тяжелее
дискавери - DNS, вроде ок. >ты пушнул сообщение, а сервис который его умеет консюмить, обработал не вижу тут разницы от POST http://server.com [some-data]
ну на http://server.com DNS все дела, тоже N реальных серваков
я хз, хттп это вопрос - ответ а тут можно положить в шину сообщение и дальше заниматься своими делами
да и не должен ничего продюсер знать про http://server.com
продолжение clojure dying срача https://lambdaisland.com/blog/25-05-2017-simple-and-happy-is-clojure-dying-and-what-has-ruby-got-to-do-with-it
кстати, не совсем понимаю что плохого в том, что в кложу приходит не школоло с улицы, а люди попробовавшие другие языки
без нубов приток народа будет меньше
ну я например люблю хаскель или там пурескрипт, элмы, ну я в здравом уме и понимаю что 80% народа не потянет. И я его не никогда не притащу клиенту
CLJS попроще, но опять же я это не потащу ибо слишком другое и большенство будет жуткий код писать
омг))
на чем писали, жаве?
хз, при таком кейсе говно выйдет в любом случае
тут язык не причем ащще
ну код ревью, пулы - это уже офигенно я считаю. По крайней мере не все все подряд в мастер кидали
хотя мне больше сеньеров в таком случае жалко - ппц тяжело было наверно 🙂
я тоже начинал с rabbitmq еще в 13 году. с кроликом очень хорошо получилось переключить мышление на pub/sub и выстроить микросервисы.
теперь вот к кафке подошел вплотную
гошечку надо - в ней все анально огорожено я есть только один правильный путь что либо сделать 🙂
хотя конечно не - джуны очень изобретательны
дак в итоге то чо - взлетели? в проде уже?
а чо кложуру не протаскиваешь?
вот вот, потому-что сложно/ново/и скобочки. Вот мы и вернулись к чему начинали - не оч кложа френдли дл начинающих
@fmnoise мне пришлось делать 2х часовые семинары. готовить презентации и продумывать плавное погружение. в итоге получалось так, чтобы прочитать 2х часовой семинар я тратил на подготовку 1 день личного времени на выходных. но другого способа я не нашел. зато после 5-7 семинаров (2 семинара в неделю) и домашних заданий люди получали кикстарт и понятие о том как писать код.
у меня такой опыт внедрения кложи
хз - я если честно слегка остыл уже от CLJS. Начал переписывать с CLJS на TypeScript, по кол-во кода один в один, даж иногда меньше выходит. Плюс типы и экосистема Jest, WebPack, реакт без интеропа.
по продуктивности дак и вовсе не вижу разницы, TDD заменило репл на 100%, тесты с Jest прогоняются за 100мс. И вот я даже уже и не знаю что тут такого в скобочках этих
я думал он помер уже уж
и чо как? ты прям чувствуешь что прям в 10х хуже чем на CLJS?
ну в общем я первые 2 года с кложай думал что я прям 10х продуктивней с ней, а оказалость что по большой части заслуга функционального программирования и тоже самое достигается в других языках по большой части
у меня в принципе на любом языке код выходит один:
function doX(p) {
const a = ...
const b = ...
const c = ...
return x(a,b,c)
}
дада, тоже годно, у нас бек на C# вот думал F# протащить но чота бекэндщики испугались)
Дада, это превое - ООП головного мозга, в С# без класиков даже хелло ворлд не написать же
https://fsharpforfunandprofit.com он очень крутой да, помог мне с ФП разобраться в кложе и хаскеле, знаю да:)
рассказывает про монады не используя это слово, оч годно да)
надо на OCaml заглянуть, Reason, BucleScript. прям окамл revange в послденее время
хаскель коммьюнити ведет график https://wiki.haskell.org/wikiupload/2/23/Monad-tutorials-chart.png
я как понял у меня прям зачасалось написать свой ы)
дада, точно
да имхо тут не только в clojure проблемы, что-то новое люди воспринимают тяжко всегда, не важно хорошее это или не очень, просто что-то надо читать изучать, проще придумать почему это нам не надо
кложей придумать почему это нам не надо очень просто: "скобочки, а хто это потом поддерживать будет, где мы найдем разработчиков" и прочая классика
Мы тут обсуждали - что хаскель это болезнь. Чувак из heroku мне сказал, что выработал для себя принцип - не брать на работу людей, которые интересуются haskell 🙂
Про окамл - тут @prepor конду на гошечку переписал - тек окамл по памяти - хер найдешь где 😞
Видимо удела окамла писать парсеры всякие и тайп-чекеры, наверно у языка есть судьба заложенная его создателями (ну кроме js конечно). Либо практично, либо академично, либо удивительный уродец
по существу
WARNING: Use of undeclared Var ews.request/get-attachs at line 48 /private/tmp/aa/nopomore/kapteko.ios/js/legacy/src/ews/flow.cljs
А почему такое не ошибка компиляции а просто ворнинг?https://clojurians.slack.com/archives/C050HE28Y/p1495740483486692 а кто-то знает, как css работает?
@artemyarulin потомушто js же
а еще, макросы жеж, пойди полистай cljs-ajax, или как там его, у курсива ласты склеиваются всё красным подчеркивать, потому что там треть функций макрой в рантайме в неймспейс вставляется
js не причем да, это импорт и очепятка в имени функции в CLJS модуле. А вот про макросы да, я думаю эт верно. Хотя в тоже время ворнинг дак они кидают…
и еще наброс про квейк кложа мертв https://www.reddit.com/r/Clojure/comments/6d9say/simple_and_happy_is_clojure_dying_and_what_has/di1dvuf/
"нет новых фич ГОД, девелоперы уйдут", ну что за детский сад, а. нужны ли такие девелоперы, которые уйдут из-за года без фич?
при компиляции. Разница в том что уже неделю как в проде эта хрень не работает, а былоб ошибкой - неделю назад билд поломался, CI красненьки, а очепятка - фиксед и все счастлевы
very little innovation going on
no roadmap
almost no community involvement or leadership
declining growth of popularity/hype
too few people doing high-quality, well-maintained libraries
Ну вот что из этого не правда? Спеку в либку, в 1.9 полторы новых функций да и то бета-номер-100500какие инновации? работу работай. инновации и усовершенствования в инструментах важны, а в языке такой зрелости как кложа, куда уж инновировать. тем более по будильнику ("уже год в альфе!" как дальше жить?)
и это люди говорят, пришедшие из жавы, где лямбдам 2 года только, лол (не знаю с чего Дима пришел, но это не только его аргумент)
ну просто все знают как когнитек пилят кложуру - окучивают клиентов ибо ипотека и все такое, а в свободное время тикеты закрывают в жире про кложу.
я может не такой эдвансед юзер, но я только на баги курсива пока что натыкался, за 3 года
вы не понимаете. "innovation" - это новая кулбилдсистема и новый култайпчепер и новый куллинтер и новый кулфреймвор раз в квартал.
ну чо вы передергиваете. Вот таже гошчка - стабильно быстрее-выше-сильнее
хотя может плохой пример ибо язык зеленый еще
+ как только у чуваков проект на джаве, им прямо не терпится вон там кусочек на баше, тот - на питоне, тут окамлом полирнуть, там еще что-то.
а когда на кложу переходят: "ой всё, 80кб рантайма тащить ради мигающей кнопочки приходится" - ну напиши ты кнопку инлайн жаваскриптом и всё, и скрипт на питоне на 3 строки, чтобы быстро запускался (lumo же не существует попрежнему)
ох ваще у меня тоже подгорает от этих обсуждений) мне кажется мы тут в уютном чате просто стали забывать реальное положение вещей в мире, среднее качество софта который пишется, доминирующие языки и средний уровень программистов. Раздупление кложи, даже если ее в прод не получается выкатить, дает хорошие бонусы, меняется мышление, появляется желание разбираться в базовых вещах, а не читать доки разных фрейморков, которые будут за тебя чтото делать, возможно это плюсы фукц. программирования в целом, но для меня знакомство с ним началось с кложи. Все это имхо
попробуй теперь это продать клиенту/манагеру - Ну я тупил год, но теперь могу фп и йа крут! - Какой крут Вася, нам фичи надо в прод еще вчера - бери ЖС и пиши геттеры!
Я не тролю, но у меня такие разговоры были, протащить кложу оч сложно
ну слушай, конечно, всё неоднозначно и не белое/черное, но @mike1452 тебе пример с прототипом за недели вместо годы приводил
манагеры - тоже разные бывают, и паразитов среди них тоже хватает, как и гребцов воимя ипотеки
да я сам продавать кложуру не хочу уже - как то другие языки повеселее стали. Тока скала все еще компилирует, а всякие реплы и хот релоады например счас уже есть везде
ну сорян да, у меня кризис среднего возраста и мы с чуваками шипим фичи на уродлевом жс и редуксе и вроде выходит и все рады
ну вот я тут спрашивал - какая главная фича кложы? Но вот кроме ФП которая вещь очень обширная
Я раньше думал что репл, immutabilty но это продать ныные тяжело ибо уже много где есть в разных видах
слушай, с главной фичей тут хитро, я как-то пытался отследить в чем сок самый: она как у датомика, куча компонентов, которые везде в том или ином виде/количестве есть, но когда все вместе интегрированы - просто песня получается
для большенства переходить на кложу - вот гемор 🙂
ну я правда в позиции "все проекты с 0" нахожусь, и мне не переводить систему в продакшене на совершенно другой стек. как представлю даже, что sql из кложи использовать прийдется вместо датомика -
в том числе и поэтому у меня такая категоричная позиция относительно хипстера из видосика.
в этом кста тоже по мне проблема - тяжело тихонечку сбоку CLJ/CLJS приатачивать
дернуть кста CLJ из жавы вообще реально?
а точнож. А вот тебе не кажется что народ как-то остывает к кложуре? Что хайпа меньше да
я заметил, что у чуваков вместо бытовухи начинаются "выхода" жосткие, потому что уж очень завысились ожидания
ну я имею ввиду коммьюнити, там в реддите чувак писал, гугл тренды если смотреть то чота не вверх, а вниз
но фишка-то в гедонической беговой дорожке: у чуваков просто проблемы третьего мира заменились на проблемы первого
гугел тренды мы уже обсудили, я за всеми вопросами по функциям иду на https://clojuredocs.org/clojure.core/transient
ну понятно дело что никто из нас в гугле кложу не ищет. Но опять же общую заинтересованность оно может показать - понятно дело что http://clojure.org тока нубы посещают по большой части
а в питоне и джаве я все годы такой гугел тренд этим языкам водиночку ежедневно генерил - ухх
ну ок соглашусь, на кложуру.орг заходят один раз в жизни чтоб бинарник скачать. Но получается этого меньше и меньше происходит в послденее время?
ну в "старом" трафике же был трафик уже умелых чуваков, потому что остальные ресурсы не были мачурны достаточно
+ слака не было, теперь тут столько движа, что отмотать на 2 дня назад иногда уже нельзя
ну ладно уговорил, все спокойно в Датском королевстве 🙂
ну понятно, что не всё супер круто, некоторые жалобы, типа на неудобно/неясно куда идти - они по-делу, но преподнесены неконструктивно совершенно. например те же инновации требуют почему-то от кор-тим, а не от Флеминга, который курсив пишет. + сравнивать роуд мап раста с отсутствующей роуд мапой кложи тоже "неочень": там чувакам всё с 0 пилить, а тут есть всё уже на джаве, жс, и обернутое, и заново написанное, но, видите ли, гитхаб пульс говорит "оно дохлое", потому что коммитов неделю не было