# Понедельник 118 твитов
Всем привет! На этой неделе вас буду развлекать я, Рома Лютиков @roman01la 🙂 pic.twitter.com/vzdyYHUMnW
10:29Я JavaScript разработчик из Чернигова. Это где-то на севере Украины.
10:32У нас полный стек на JS, небольшие проекты. В основном стартапы. Сейчас, как и все, болеем реактом.
10:35@jsunderhood @roman01la круто. В прошлый раз было отлично. pic.twitter.com/l4eixoqgA110:36
Кстати да. Я уже вёл этот аккаунт год назад. Так что можно сделать ретроспективу изменений в жизни разработчика за один год.
10:37На самом деле изменилось не многое. Тогда делал реакт и сейчас его делаю. Только уже более осознанно, быстрее, лучше.
10:41Сейчас только добавился React Native. На рынке заметно возросла его доля, особенно среди стартапов.
10:44Так что не тормозите, изучайте технологию. Эти знания вам принесут денег и боль.
10:45Боль потому, что RN очень сырой. Работающие с ним могут прокомментировать, буду ретвитить.
10:48@jsunderhood можно поподробнее о боли?)
Дайте человеку боли :)
@jsunderhood можно поподробнее о боли?)
10:48
На самом деле я попросился сюда во второй раз, чтобы сделать текстовую трансляцию с @ReactAmsterdam Лайнап на конфе довольно интересный.
10:51Конференция будет проходить в эту субботу, постараюсь писать о самых интересных докладах.
10:52Если не ошибаюсь, соорганизоторы конфы @operatino и @PixelsCommander Это был локальный митап, который перерос в полноценную конференцию
10:57@jsunderhood @jeetiss пусть попробует React Native, Ionic, NativeScript или ещё какой бред.10:58
У нас, в Чернигове, мы делаем свой небольшой митап @chernihivjs Вначале я был настроен пессимистически, но сейчас все более или менее хорошо
11:01@jsunderhood RN, NativeScript, Ionic — это неиссякаемый источник отмазок:11:02
— Почему %проблема%?
— Ну а что вы хотели, это ж RN/NS/Ionic
Если хотите сделать митап в своём городе, но думаете, что затея напрасная, все равно делайте!
11:05Вы ничего не теряете и даёте толчок на создание сообщества. Это можно подкреплять курсами и новыми форматами встреч.
11:08@jsunderhood livescript, та ещё боль11:08
@jsunderhood Есть проблемы с тем как и зачем ставить нативные модули, но когда это работает это просто охуенно.11:09
@jsunderhood Можно сколько угодно говорить про сырость, но это настолько лучше нативной разработки, что я готов жрать эту сырость лопатой.11:09
@twenty @jsunderhood а какие проблемы с ionic?11:09
@jsunderhood можешь сделать выжимку того, что стало осознаннее и лучше?11:10
.@23ydobemos думаю все как обычно: появились устоявшиеся подходы к разработке, вся команда комфортно себя чувствует с реактом и экосистемой
11:13.@23ydobemos договорились о шаблонах в процессах разработки и создали инструменты для более эффективной работы
11:15.@23ydobemos в общем поставили все это дело на конвейер:)
11:16.@freiksenet_ru А не хватает ли какого-нибудь Xcode, который даёт UI инструменты?
11:19@freiksenet_ru @jsunderhood вы что-то имеете против нейтив?
Расскажите нам о преимуществах нативной разработки перед тем же React Native. Правда интересно.
@freiksenet_ru @jsunderhood вы что-то имеете против нейтив?
11:21
@jsunderhood вы щас угорели что ли?11:25
@jsunderhood @freiksenet_ru чуть в сторону по дизайну нестандартному, анимации, буст по производительности в виде того же Sql оптимизации11:27
.@twenty Мне кажется, что не зря существуют все эти инструменты для нативной разработки и у них должны быть преимущества.
11:30@jsunderhood я подозреваю, что за RN ратуют те, кто нативной разработки не знает. @twenty11:31
@twenty @jsunderhood я думаю что у ionic сейчас есть своя небольшая ниша, где "тормоза" компенсируются скоростью разработки и тем что 1/211:32
@twenty @jsunderhood 2/2 не надо держать/нанимать отдельную команду.11:32
@jsunderhood а кто умеет программировать под iOS/Android, для того все эти RN/Ionic - это большой шаг назад по тулам и возможностям @twenty11:32
@jsunderhood у существующих RN компонентов недостаточно широкие возможности/баги => пишешь свои, а чем тогда react?11:33
Пока здесь решается вопрос нужен ли RN, я отойду. Потом ретвиту самое интересное :)
11:37@jsunderhood несколько дней назад в чате обсуждали gitter.im/razbor-poletov… в контексте клиента для @gitchat на RN github.com/terrysahaidak/…12:11
@jsunderhood как iOS разработчик с 5 летним стажем скажу что В RN не хватает профилирования и вообще системной поддержки. Но я верю что 1/212:12
@jsunderhood 2/2 что следующее поколение системных фреймворков будет построено на похожей парадигме. Слишком очевидны преимущества React12:12
@jsunderhood Это не особо причем. Главное моментальный релоад, нормальный язык разработке и декларативный API.12:12
@jsunderhood не ошибаешься, но помимо нас ещё в организации участвует @MLarchanka и пара других ребят12:17
@blia @listochkin @jsunderhood @twenty зато лайв релоад, мгновенные релизы, и shared codebase между платформами12:21
@operatino @blia @listochkin @jsunderhood и это всё — миф для легковерных фронтендеров12:21
@jsunderhood @operatino Верно, это был AMS React митап который хостит @Sander_Spies уже полтора года. У конфы была хорошая база для старта.12:22
@jsunderhood @freiksenet_ru мне норм, HMR здорово перекрывает такую необходимость12:25
.@pomidore @freiksenet_ru но как же всякие сториборды в Xcode и библиотеки компонентов?
12:26Я правильно понимаю, что в React Native так же, как и в вебе: используют или Flux или Redux или Relay?
12:28@twenty @operatino @blia @listochkin @jsunderhood Я тоже придерживаюсь мнения - нейтив лучше, но есть барьер и многие его не переступают12:29
.@pomidore @freiksenet_ru а представь как бы повысилась твоя эффективность, если бы были таки инструменты для веба? :)
12:31@jsunderhood С Relay это вообще волшебная конфетка, а не фреймворк :)12:40
.@freiksenet_ru мне предстоит RN + Relay, через год проведу снова неделю здесь и отчитаюсь :)
12:41Самый распространённый вопрос о Relay: где хранить состояние UI, которое никогда не отправляется на сервер? Например состояние комбобоксов.
12:44Relay — это ведь только об управлении данными, которые ходят между клиентом и сервером.
12:45@jsunderhood Либо client-side схема через network layer, либо добавить Redux. В будущем будет нативно, через client-side схему, видимо.12:46
.@freiksenet_ru видимо это два самых распространённых решения :) Расскажи про схему. О Redux и так все знают.
12:47@jsunderhood @freiksenet_ru когда тебе надо ждать по две минуты компиляции, ты должен быть уверен, что кнопка стоит правильно12:48
.@pomidore @freiksenet_ru Верно. Но когда у тебя есть интерфейс для позиционирования этой кнопки, ты уже видишь где она будет размещена.
12:49.@pomidore @freiksenet_ru Я не против хот релоада, это хорошо и он нужен.
12:51@jsunderhood Я сам не пробовал так делать, вот блог пост про это. hueypetersen.com/posts/2015/12/…12:51
Альтернативой Relay может быть реализация в Om.next. Вот здесь её портируют на JS github.com/threepointone/…
13:04.@RReverser @pomidore @freiksenet_ru Я не делал UI в Xcode, но по словам знакомого, там для адаптивности очень крутые инструменты.
13:05@glitterOfHyad @blia @listochkin @jsunderhood @twenty А с чего ты взял что перформанс простых прилож страдает с нативным UI из React Native?13:08
@operatino @blia @listochkin @jsunderhood @twenty Я исключительно под нестандартный UI, коим любят баловаться дизайнеры для ios приложений.13:08
@DevArtem @twenty @blia @listochkin @jsunderhood нейтив лучше для качетве одного конкретного приложения, а не для бизнеса и продукта13:08
.@operatino @glitterOfHyad @blia @listochkin @twenty Жаловались на тормоза, когда в JS потоке идёт работа с большим количеством данных.
13:11.@operatino @glitterOfHyad @blia @listochkin @twenty Особенно на Android.
13:11.@operatino @glitterOfHyad @blia @listochkin @twenty Для оптимизации нужно разбивать обработку на куски, выполнять в next tick.
13:20@jsunderhood @RReverser @pomidore @freiksenet_ru последний xCode делает лайв-рендеринг для любого девайса и пересобирать ничего не надо13:20
@jsunderhood @operatino @glitterOfHyad @blia @listochkin @twenty Никто же не говорит что нет проблем. Мы говорим что это будущее.13:21
@freiksenet_ru @jsunderhood @operatino @glitterOfHyad @blia @listochkin нахер такое будущее.13:21
@freiksenet_ru @jsunderhood @operatino @blia @listochkin @twenty Ребят, это холивар, закрывайте уже тему.13:21
Закрыли 😅
13:21@jsunderhood В то время как Xamarin стал бесплатен, я думаю RN особо не актуален ибо можно писать на F#. По поводу рантайма - он минимален13:39
@jsunderhood Кто любит Swift также можно уже делать кроссплатформенно elementscompiler.com/elements/silve… (не мне тебе говорить о js ;))13:39
К предыдущим ретвитам: кто-нибудь пишет/играется с языками компилируемыми в JavaScript?
13:41BabelScript не считается 😎
13:42@jsunderhood elm/purescript13:42
@jsunderhood Да, с Яваскриптом.
:) И суперсеты типа TypeScript тоже отбросим.
@jsunderhood Да, с Яваскриптом.
13:43
На самом деле это тема на завтра, но можно немного начать уже сегодня.
13:46@jsunderhood Ща заинтересовала комбинаторная логика - основа всего исчисления, довольно интересно тут youtube.com/watch?v=O_rcdi…13:46
@jsunderhood золотые слова! Именно так и появился @kurskmeetup - ежедвухнедельный IT митап в Курске13:46
@jsunderhood Вопрос зачем.13:47
.@freiksenet_ru Хороший вопрос. Наверное когда JS так надоел, что хочется другой язык, пока он тоже не надоест.
13:49На самом деле для расширения кругозора и чтобы убить в себе бездумную любовь к единственному языку, который знаю. В данном случае это JS.
13:55@jsunderhood scala-js няшка13:55
@jsunderhood elm, но interop какой-то фуфуфу13:56
хочется elm, реализованный поверх ts, с gradual typing
@jsunderhood @freiksenet_ru приходишь такой к начальству "чет js надоел, давайте писать на %newlangname%", а они тебе "конечно давай!"13:56
@jsunderhood @freiksenet_ru (на самом деле нет)13:56
@jsunderhood играюсь с Elm. Очень круто, но в прод пока опасаюсь тащить.13:56
@jsunderhood а не было желания перейти в другую область? В мобилки те же?13:57
.@_sashashakun было желание перейти в область затяжного трекинга, но к коду все равно тянет :)
13:59@_sashashakun @jsunderhood @freiksenet_ru я рискую вбросить, но вакансии на cljs примерно так и появляются14:00
и это неплохо на самом деле
@_sashashakun @jsunderhood Со мной вот это и случилось, не могу после Objective-C/Swift смотреть на JS.14:01
@jsunderhood мы как раз в @frontflip_js пытаемся найти тех, кто готов про elm/typescript рассказать. Поможешь? frontflip.me/possible_theme…14:17
@jsunderhood Это хороший повод. Я лично уже наигрался, я писал за деньги на Common Lisp и Clojure и развлекался Haskell и Agda.14:18
.@freiksenet_ru И в итоге вернулся к JS, почему?
14:20@jsunderhood Я не вернулся, а пришёл к нему. На нем (с реактом) кайфовее всего писать приложения и тут самое лучшее комьюнити.15:33
@freiksenet_ru @jsunderhood ну, кложа/кложурскрипт очень много полезного дала в свое время + мозги прокачала15:38
@freiksenet_ru @jsunderhood чего не могу сказать о джаваскрипте15:38
Вброс: Redux простой, но Redux + React много сложнее для понимания, чем Flux + React.
15:42Такой вывод сделал по количеству затраченного времени на объяснение того и другого.
15:43Комментарии в стиле «просто ты тупой и все остальные тоже» не принимаются.
15:44Особенно сложно даётся понимание мидлваров.
15:50@jsunderhood потому что редакс в контексте реакта пестрит своими абстракциями. В результате оба поднимают порог.15:50
Меня сейчас будут ругать, но одна структура данных для состояния, диспетчер и функции меняющие состояние — это все, что вам нужно.
15:54Диспетчер нужен для того, что бы общаться с модулями, которые делают IO.
15:56@jsunderhood Так а чего ругать-то, все так и есть на самом деле.16:00
.@iamboyarskiy я бы выбросил диспетчер, но паб/саб очень простой для понимания
16:01За столь короткое время (за сегодня), @roman01la превратил @jsunderhood в откровенную выгребную яму. 😒[не умеешь - не бурись]
Всем не угодишь 🙃
За столь короткое время (за сегодня), @roman01la превратил @jsunderhood в откровенную выгребную яму. 😒
[не умеешь - не бурись]
16:22
@jsunderhood Flux тоже нифига не простой, я со второго раза только понял.16:49
@jsunderhood Fun fact, наш CEO когда-то написал практически Redux в нашей местной вариации флукса, тоже сторы возвращающие новое состояние.16:49
.@freiksenet_ru Мы тоже в свое время посмотрели на Om и перетащили много идей из него. Все современные реализации очень похожи.
16:51@jsunderhood сделать и попробовать свою систему управления состоянием в react после flux - это мастхэв опыт, который я бы даже спец. форсил.16:59
На сегодня все. Нужно ещё подучить RN. Как бы там ни было, но JS в нейтиве — это клево :)
17:39# Вторник 78 твитов
Всем привет! Этой ночью умер React Router medium.com/@taion/react-r… 😱
7:08REACT ROUTER MAINTAINER DIDN'T REPLY FOR SIX DAYS. LET'S FORK
На самом деле нет. Просто у чувака фатиг или обидка.
REACT ROUTER MAINTAINER DIDN'T REPLY FOR SIX DAYS. LET'S FORK
7:14
Я ночью начитался о RN и ничего нового для себя не открыл. Сейчас переписываю на JS todo list приложение, которое делал на ClojureScript.
7:24Кстати, для RN с ClojureScript хот релоад был сразу :) youtube.com/watch?v=w9aE4D…
7:26У меня практически сразу возник вопрос: какой роутер использовать? На GitHub их миллион. Он должен быть нативный и с удобным JS API.
7:28@jsunderhood наоборот, наконец, интересная неделя. @roman01la уже второй год вдохновляет своим бешеным энтузиазмом и разносторонностью 🤓
Эт пока детей еще нету :D
@jsunderhood наоборот, наконец, интересная неделя. @roman01la уже второй год вдохновляет своим бешеным энтузиазмом и разносторонностью 🤓
7:30
@jsunderhood а я уже забюджетировал production проект на Elm!
Круто!
@jsunderhood а я уже забюджетировал production проект на Elm!
7:32
В RN очень круто работают анимации на react-motion github.com/chenglou/react…
8:01@jsunderhood на cljs какого размера билд выходил?
Огромный. Для RN проект собирается с optimisations: simple
@jsunderhood на cljs какого размера билд выходил?
8:05
Если кому-нибудь интересно сделать RN приложение на ClojureScript, то вот здесь ресурс с полезными ссылками cljsrn.org
8:06Я делал с помощью инструмента Re-Natal github.com/drapanjanas/re… На Reagent + re-frame
8:07Говорят, что в iOS можно поднять SQLite на локальном сервере и общаться с базой через REST. Таким образом разгружается JS поток в RN.
8:26Вот вам к утреннему кофе пост о том, как V8 оптимизирует JS medium.com/@ghaiklor/how-…
8:29Здесь код приложения на ClojureScript github.com/roman01la/re-t… Скоро опубликую то же самое на JS.
8:34У меня сейчас процесс погружения в React Native по работе, так что буду много о нем писать.
8:39В Gitter чатике dev-ua/reactjs можно спрашивать об RN, там есть толковые ребята gitter.im/dev-ua/reactjs
8:40Вы используете инструменты, которые повышают эффективность разработки с React? Какие?
8:48@jsunderhood Генератор стайлгадов и верстак для разработки компонентов: github.com/sapegin/react-…
Вот только хотел упомянуть :)
@jsunderhood Генератор стайлгадов и верстак для разработки компонентов: github.com/sapegin/react-…
8:50
@jsunderhood джунов.8:50
Мы используем CLI для генерирования компонентов из HTML roman01la.github.io/html-to-react-… Это очень экономит время на старте проекта.
8:53В этом скринкасте показан процесс работы youtube.com/watch?v=Cd8cNL… На выходе готовое дерево компонентов, которое тут же можно отрендерить.
8:55@jsunderhood можешь немножко попиарить мой гиттер?) может кто-то захочет поконтрибютить + посмотреть на немножко больше чем ту-ду на рн?
Кстати да! Этот парень делает очень крутое приложение на RN — нормальный чат для Gitter github.com/terrysahaidak/…
@jsunderhood можешь немножко попиарить мой гиттер?) может кто-то захочет поконтрибютить + посмотреть на немножко больше чем ту-ду на рн?
9:14
@jsunderhood недавно ещё написал немного medium.com/@ghaiklor/opti…9:25
У вас есть проекты, которые вы сделали ради фана, а оказалось, что многие ими пользуются? Еще и ругают вас, что вы не поддерживаете их.
9:28У меня так было с ботом переводчиком для Slack github.com/roman01la/slac… pic.twitter.com/ucKAF1xbPo
9:29@jsunderhood Да все опенсорсные в общем-то.9:29
Бывало прям на почту писали: «у тебя там не работает, быстро сделай, а то я не знаю англ. и из-за тебя потеряю клиента» :D
9:32@jsunderhood svgo lol
Клевый инструмент для оптимизации SVG, btw github.com/svg/svgo
@jsunderhood svgo lol
9:35
@jsunderhood со всеми вопросами про GitterMobile можно еще в10:14
gitter.im/terrysahaidak/… @c01nd01r
Набросал структуру приложения на Redux и пару компонентов. На это уходит много времени. Нужно написать много кода, что бы что-то работало.
10:16Имеется в виду нормально структурировать проект. Например модульный подход в ducks github.com/erikras/ducks-…
10:18По ощущениям в cljs это делается много быстрее с re-frame и кода пишется меньше.
10:21@jsunderhood это наверное критично только когда делаешь много мелких проектов, не?
Для меня боль в количестве файлов, которые нужно изменить, когда меняешь поведение какого-нибудь обработчика.
@jsunderhood это наверное критично только когда делаешь много мелких проектов, не?
10:36
.@jsunderhood Ну и когда начинаешь любой проект. Пусть даже все сводиться к копипасту, но это занимает много времени и нудно, имхо.
10:38@jsunderhood хороший подход. использую давно и мне нравится. проще даже работать так, все на своих местах. и нет миллиона импортов10:38
@jsunderhood хммм... значит cljs просто менее вербозный чем js. Я особо не чувствую боли от настройки new project на react+redux
Про вербозность точно соглашусь. А как ты создаешь новые проекты? Все руками?
@jsunderhood хммм... значит cljs просто менее вербозный чем js. Я особо не чувствую боли от настройки new project на react+redux
10:40
Мы для себя сделали базовое приложение, с которого всегда стартуем новые проекты github.com/redradix/redux…
10:41Плюс к этому у нас есть так называемые «рецепты» — переиспользуемые реализации разных фич github.com/redradix/redux…
10:45Из каждого проекта выносим интересные реализации в отдельный рецепт, чтобы использовать готовое в будущем.
10:46@jsunderhood я - да. Но я в каждом новом проекте стараюсь пробовать что-то новое. Основное - копирую руками10:46
Очень хорошо выносятся Redux мидлвары с сервисами, которые они дергают. Например API или DB.
10:48Если вам захочется в RN делать графику, то советую проект Ejecta. Вот бойлерплейт с Three.js github.com/gilbox/react-t…
10:54Ejecta — это биндинг к OpenGL реализованный как Canvas 2D и WebGL API. То есть существующие JS библиотеку работают с этой штукой.
10:57Я тут говорю о Redux и RN, а есть ведь те, кто только начинает знакомится с React. Отправлйте ссылки на учебный материал для новичков :)
11:02Многим нравится запись воркшопа по React/Flux, который мы проводили в прошлом году. Как раз для новичков youtube.com/playlist?list=…
11:05К нему прилагается репозиторий с кодом всех упражнений и практическим заданием github.com/roman01la/reac…
11:06По поводу быстрого старта: генератор приложений на React Native strapmobile.com/customizer/
11:23А кто тестирует вьюшки в React? Мы практически сразу отказались от этого. Тестируем только редьюсеры, экшены, мидлвары и сервисы.
11:37@jsunderhood аккуратные propTypes и statless components. Без тестов.11:40
.@RusAlexander а как же логика управления состоянием?
11:41@jsunderhood Мы тоже сами компоненты не тестим, больше делаем функциональных тестов всего в целом. Но думаю попробовать тестить контейнеры.11:41
Я еще не видел Selenium тесты в проектах на React. Есть такие?
11:42Думаю в этом случае Selenium не нужен. Нет смысла тестировать то, как React обрабатывает DOM события. Это уже протестировано в нем.
11:46Можно использовать рекордеры экшенов для создания сценариев и воспроизводить их без браузера.
11:47@jsunderhood есть, но не у меня. Обычно характерно для проектов, где есть отдельная команда QA, покрывающая тестами UI на разных технологиях11:54
@mistadikay с redux писать нужно больше, чем без redux. в процессе много телодвижений приходится делать в разных местах аппа. @jsunderhood11:56
@jsunderhood мы пишем acceptance, без упорок (а-ля css классы трекать), но чтобы быть уверенными, что всё критичное на месте в браузере12:24
@jsunderhood про много кода в разных местах React+Redux - соглашусь. Порой хочется взять какой-нибудь Ember с 20 слоями абстракции!12:44
@jsunderhood Selenium по опыту не очень кул штука, очень уж медленный и хрупкий инструмент. ИМХО Shallow rendering в разы круче.14:06
@jsunderhood В тему тестов: selenium тестирует всю систему, проверяют много чего, но тяжело определить что же конкретно сломалось.14:06
@DevArtem @jsunderhood selenium всё ещё хорош для css regression, в том же реакте кроссбраузерно тестировать уже и нечего.14:12
@jsunderhood к слову, есть karma-jsdom-launcher github.com/badeball/karma…, удобно оставаться в одном тех. стэке для разных тестов и окружений.14:22
ура, портировал туду лист на JS версию в RN pic.twitter.com/3iZbZLGPMj
14:42JS версия в ветке javascript, в том же репозитории где и оригинал на cljs github.com/roman01la/re-t…
14:48По ощущениям процесс идет медленнее. Пишешь так же быстро, но больше. Надежда на Relay.
14:50В RN хот релоад валится чаще, чем в вебе. Но в целом полезная штука, когда нету интерфейса для разработки.
15:29Для JS на нейтиве, RN наверное самая безболезненная платформа в плане старта проекта.
15:33Мне например в Cordova так и не удалось нормально настроить окружение и тот же хот релоад.
15:34react-native-sqlite-storage — порт Cordova плагина SQLite3 под RN github.com/andpor/react-n…
15:45Этот плагин полностью реализует API Cordova плагина, а для него у меня есть рецепт (сервис + мидлвар). Вот вам полное переиспользование.
16:02Удалось поднять SQLite на нейтиве. В качестве query билдера заюзал Knex. Правда его пришлось собрать отдельно.
17:36Потому, что Knex использует модули из ноды, которые полифилит browserify. В нейтиве этого нету.
17:37@jsunderhood кстати да. у кого уже есть продакшн с relay + graphql: на чём он? как ощущения?17:58
Babel мертв, все на Buble gitlab.com/Rich-Harris/bu…
18:28@jsunderhood gitbook.com/book/maxfarsee…
Курс по React.js для начинающих
@jsunderhood gitbook.com/book/maxfarsee…
18:48
@jsunderhood почему не realm? realm.io/docs/react-nat…
Потому, что я знаю, как работать с SQLite и он меня устраивает :)
@jsunderhood почему не realm? realm.io/docs/react-nat…
19:25
На сегодня все. Закругляюсь с RN, голова от него уже болит.
20:00# Среда 83 твита
Всем привет. Сегодня немного поговорим о языках компилируемых в JS.
9:49Меня в данный момент интересует ClojureScript. Но обсуждать можем любой другой.
9:52У кого-нибудь есть опыт работы с такими языками? Как ощущения? Потом вернулись в JS или нет?
9:53У всех них есть общая проблема: небольшая доля на рынке.
9:59Разработчики очень туго переходят с мейнстримных языков на что-нибудь менее распространённое.
9:59Наверное потому, что часто думают так: «Я всю жизнь пилил на JS, я здесь крут. Перейду на Elm и буду никем. Нафиг надо.»
10:02Как будто бы весь ваш опыт разработки улетучивается :)
10:03@jsunderhood Есть очень плохой опыт работы с коффескриптом. Never again, это самое говно которое только может быть.10:03
@jsunderhood это наоборот круто. Пробуешь новые языки — перенимаешь хорошие концепции в свой основной — становишься лучше как программист.10:05
Во-во. Много подходов к разработке SPA перетащили в JS из мира ClojureScript. Например глобальное состояние и курсоры.
10:08@jsunderhood имхо основная причина "ваш Х никому не нужен. Тут на мегапопулярном Y хрен норм проект найдёшь, а там ваще будешь на сухарях"
100500% это нормально
@jsunderhood имхо основная причина "ваш Х никому не нужен. Тут на мегапопулярном Y хрен норм проект найдёшь, а там ваще будешь на сухарях"
10:10
Chrome Canary gets 99% ES6 support. It fails only on `no assignments allowed in for-in head` compat-table test. GJ pic.twitter.com/auXu7WvdHT
TCO уже сделали?
Chrome Canary gets 99% ES6 support. It fails only on `no assignments allowed in for-in head` compat-table test. GJ pic.twitter.com/auXu7WvdHT
10:14
@jsunderhood Пробовал кофе, очень понравилось, но практически не развивается. Очень верю в TypeScript, хотим использовать в новом проекте10:15
Длинный список всевозможных диалектов и языков компилируемых в JS github.com/jashkenas/coff…
10:15@jsunderhood ага, еще пример — Redux был написан под вдохновением от архитектуры Elm.10:22
Elm сейчас довольно популярен. Можно судить хотя бы по количеству статей на Medium.
10:33Он подкупает крутым компилятором elm-lang.org/blog/compiler-… pic.twitter.com/aQ7SmizWuy
10:36Если вы за статическую типизацию, то вам стоит попробовать Elm.
10:39@jsunderhood Я не вижу повода, у языка нет бенефитов особенных, бенефиты идут от комьюнити, опыта и тд.10:40
@jsunderhood а лучше scala.js или ghcjs! Они хотя бы пригодятся вне веба!10:44
@jsunderhood Это миф что типизацию что-то реально дает. Нужны хорошие программисты, у них будет хороший код на том что они хорошо пишут.10:50
@jsunderhood В JS сейчас есть достойный статический анализ через eslint. Приходит Flow дающий постепенную типизацию. Надо это юзать.10:50
@jsunderhood а у кого-нибудь есть опыт с purescript? говорят, что из haskell like он круче чем elm, но я сам не пробовал.10:50
Интересно, что все популярные компилируемые языки (Elm, Kotlin, ClojureScript и т.д.) — это функциональщина. Как мы до такого докатились?
11:13@jsunderhood WOK, JAVASCRIPT ТОЖЕ ФУНКЦИОНАЛЬЩИНА
map/filter/reduce это конечно круто, но JS скорее просто не ограничивает тебя писать так, как ты хочешь
@jsunderhood WOK, JAVASCRIPT ТОЖЕ ФУНКЦИОНАЛЬЩИНА
11:19
@jsunderhood просто всем надоели циклы11:19
Самое популярное решение в мире ООП — это GWT gwtproject.org
11:22Точнее в мире Java. Страшная штука, но видимо в своё время в ней был смысл.
11:23Я хочу написать блог пост(ы) про Relay, рассказать чем он крут и как на нем делать разные вещи. Чтобы вы хотели чтобы я покрыл? @jsunderhood11:23
Для интересующихся Clojure: сегодня в Киеве будет митап, на котором @asolovyov расскажет как рендерить React без JS meetup.com/Kiev-Clojure-U…
11:31А я записываю видеоуроки по ClojureScript для JS разработчиков. От синтаксиса и до создания полноценного SPA youtube.com/playlist?list=…
11:36Так же поддерживаю ресурс о cljs на русском языке. Там есть справочник по языку и интерактивные упражнения clojurescript.ru
11:42Попробовать кложескрипт можно там же, в онлайн REPL clojurescript.ru/repl/
11:47Недавно делал доклад, в котором за полчаса попытался рассказать о cljs youtu.be/2Kvs2NrZrK0
11:53Немного больше расскажу 21 мая на @KharkivJS kharkivjs.org Обязательно посетите эту конфу, в прошлом году были крутые доклады.
11:57@jsunderhood @KharkivJS только это не конфа будет, а митап. Большая конфа осенью
Так что можно аж два раза посетить :)
@jsunderhood @KharkivJS только это не конфа будет, а митап. Большая конфа осенью
12:00
@jsunderhood TypeScript популярнее и совсем не функциональный.12:01
@jsunderhood Kotlin Компилируемый????
уже давно вроде как blog.jetbrains.com/kotlin/2013/10…
@jsunderhood Kotlin Компилируемый????
12:08
Погружению в лисп хорошо способствуют лекции по структуре и интерпретации программ (SICP). Для общего развития тоже youtube.com/playlist?list=…
12:16@jsunderhood "An idiosyncratic tour of SICP in Clojure" sicpdistilled.com :)12:31
Да. Точнее сказать будет: «Как рендерить React-совместимую разметку без React и JS» t.co/aANmAuqNpn
12:34@narmaru @jsunderhood @asolovyov тут есть нюанс :) github.com/tonsky/rum/blo…12:35
Как раз в этом случае очень хорошо проявляются преимущества DSL на структурах данных.
12:40У @niquola есть интересный доклад о Data DSL в Clojure youtube.com/watch?v=urQ5o7…
12:42@jsunderhood купил себе бумажную версию, там ещё упражнениями можно подкачаться
Книга тоже крутая, но мне лекции лучше заходят.
@jsunderhood купил себе бумажную версию, там ещё упражнениями можно подкачаться
12:43
@jsunderhood это ты про что?
Например вместо JSX писать структурами данных JS. Это не нужно парсить.
@jsunderhood это ты про что?
12:48
В JS тоже так делают, но за счет более выразительных структур данных в Clojure это нормально читаемо.
12:50@jsunderhood по сути нужен только один reduce
У меня есть прекрасная адаптированная под JS статья о трансдьюсерах medium.com/@roman01la/und…
@jsunderhood по сути нужен только один reduce
12:52
Как раз о том, как все трансформации данных можно реализовать через reduce.
12:52@jsunderhood популярен в смысле поиграть или есть работа на нем ? Интересно, сколько людей/компаний выбрало бы Elm для след. проекта.
Я могу на пальцах пересчитать компании использующие Elm в проде. Может есть где-нибудь статистика?
@jsunderhood популярен в смысле поиграть или есть работа на нем ? Интересно, сколько людей/компаний выбрало бы Elm для след. проекта.
13:04
@jsunderhood я знаю о ней) она есть тут github.com/xgrommx/awesom…13:08
Как вы думаете, что имеет смысл тащить в JS из мира функциональщины?
13:11@jsunderhood в том же котлине прекрасная возможность писать любой DSL который душе угодно kotlinlang.org/docs/reference… github.com/Kotlin/anko13:11
Это я к тому, что если хочется функциональной чистоты и всего вот этого, то наверное имеет смысл переключится на другой язык.
13:15Там где все об этом знают и комфортно себя чувствуют.
13:15@jsunderhood там уже пайп тащат с f# и ему подобных
ES7 Proposal: The Pipeline Operator github.com/mindeavor/es-p…
@jsunderhood там уже пайп тащат с f# и ему подобных
13:17
@jsunderhood Только изредка, когда это оправдано.
А вот когда это оправдано — интересный вопрос.
аминь 🙏
@jsunderhood Только изредка, когда это оправдано.
13:20
А вот когда это оправдано — интересный вопрос.
В рабочем коде мне было достаточно перейти к иммутабельности, отказаться от классов и научится правильно использовать частичное применение.
13:22То есть базовых понятий и навыков вполне достаточно, что бы сделать ваш код на JS проще и обозвать функциональным.
13:23Или вот тащат в язык `do`, потому, что JS statement-based ponyfoo.com/articles/propo…
13:28@jsunderhood еще интересная штука - это метопрограммирование jetbrains.com/mps/?fromMenu13:37
@jsunderhood что угодно можно сделать на любом языке кроме изменения синтаксиса
Лисп в этом плане всех сделал
@jsunderhood что угодно можно сделать на любом языке кроме изменения синтаксиса
13:37
@jsunderhood тут еще вон новый зверь - асинхронный генератор github.com/tc39/proposal-…13:37
@jsunderhood compose
Кстати, я вот не так часто применяю compose в JS, как хотелось бы. Очень редко нахожу его уместным.
@jsunderhood compose
13:39
@jsunderhood А не смущает, что иммутабельность может взрывать память и замедлять время выполнения?
Медленнее конечно, но в разработке UI от иммутабельности больше пользы, чем вреда. Это доказано.
@jsunderhood А не смущает, что иммутабельность может взрывать память и замедлять время выполнения?
13:43
Память не разрастается благодаря structural sharing. Так реализованы данные в Clojure и в Immutable.js youtube.com/watch?v=I7IdS-…
13:46@jsunderhood Мне кажется в 100% случаев чище написать (x) => foo(bar(x)), в кложе кстати тоже.
Наверное только в Haskell приятно использовать композицию. Там это через точку или $, если не ошибаюсь.
@jsunderhood Мне кажется в 100% случаев чище написать (x) => foo(bar(x)), в кложе кстати тоже.
13:48
@jsunderhood Копирование будет медленнее, если на огромных обьемах.
Я бы сказал, что это зависит от глубины структуры. Если это список из 100000000 элементов, то ничего не изменится.
@jsunderhood Копирование будет медленнее, если на огромных обьемах.
13:50
.@freiksenet_ru ну если есть structural sharing, то все данные не копируются, только измененные и путь к ним вглубь, остальное по ссылке.
13:53В JS можно тоже привносить свой синтаксис, без Babel. Sweet.js сейчас активно переписывается sweetjs.org
13:55У нас в одном проекте он использовался. Но это только потому, что вся команда понимала, как оно работает и зачем им эти макросы.
13:58Бездумно выдумывать синтаксис — усложнять жизнь другим разработчикам.
13:59@jsunderhood Вот кстати тоже довольно крутая статейка про лень filimanjaro.com/blog/2014/intr…14:15
Пример того, когда вам может понадобиться мемоизации в React medium.com/@roman01la/avo…
14:24Трансляция митапа о кложе youtu.be/Fh529ExAtjI
16:02@jsunderhood Кстати любителям clojurescript есть реактивная библиотека inspired by Rx github.com/funcool/beicon17:28
@jsunderhood React Native for Windows 10 and Samsung Smart TV.18:25
@jsunderhood F8 app built with React, React Native, Redux, Relay, GraphQL. makeitopen.com18:25
@freiksenet_ru @jsunderhood TypeScript много раз спасал от дебага в рантайме своими предупреждениями на этапе компиляции! Типизация нужна.18:25
React Native победил
18:28@jsunderhood, недавно на ДАМП слушал доклад про React Native. Понял что приложения надо писать на нативных языках платформ и не извращаться18:45
Ко всему этому добру еще есть react-native-desktop React Native for OS X github.com/ptmt/react-nat…
19:55Отключаюсь. Увидимся завтра pic.twitter.com/9UQ5ruTb3O
20:03# Четверг 20 твитов
Оптимизация хвостового вызова все же работает в Canary, в strict моде. Всем рекурсия пацаны! pic.twitter.com/2Mm9REnVGq7:01
Safari Tech Preview 2 fixes 10 ES2015 test cases from @kangax's test suite (over STP1). Only 17 tests left to go for 100% score! #webkit7:01
Исходники приложения F8 на React Native, Redux, Relay, GraphQL github.com/fbsamples/f8app
8:45Тем временем продолжается работа над нативной поддержкой JS модулей в браузерах blog.whatwg.org/js-modules
12:38Когда реализуют модули в браузерах, можно будет разрабатывать без бандлера.
12:43На @rollingscopes чувак из Google об этом рассказывал и адово пиарил Chrome youtu.be/g3UeAsiW88U
12:45@jsunderhood по началу будет какой-нибудь загрузчик, определяющий есть ли поддержка модулей :) а дальше или бандл, или напрямую.
И процессинг в сервис-воркере :)
@jsunderhood по началу будет какой-нибудь загрузчик, определяющий есть ли поддержка модулей :) а дальше или бандл, или напрямую.
13:38
@jsunderhood запустили продажу билетов, должно быть очень круто kharkivjs.org14:29
Сервис-воркер с Babel внутри для транспиляции загружаемого JS github.com/bahmutov/babel…
15:05А у вас есть сервис-воркеры в проде?
15:06У нас в блоге есть сервис-воркер для кэширования статей blog.redradix.com
15:47Achieving point-free JavaScript with R.converge / _.over medium.com/@nicoespeon/ac…
16:02@jsunderhood есть популярный Wordpress-плагин, который использует SW для отправки нотификаций о новых постах. Он много у кого на проде.16:02
@jsunderhood у меня были, сейчас занимаюсь активным пиаром16:03
@jsunderhood я думаю при http2 бандлеро хайп поутихнет и люди перестанут добавлять их в резюме
Где-то проводили исследование, что http2 не сильно поможет в этом плане
@jsunderhood я думаю при http2 бандлеро хайп поутихнет и люди перестанут добавлять их в резюме
16:56
@jsunderhood Нет. Будут те же проблемы, что с Require.js - в нем уже можно без бандлера, а что толку.17:00
@jsunderhood это обсудили в webpack team AMA hashnode.com/ama/with-webpa…17:07
@jsunderhood @Blackrabbit99 HTTP2 это как web assembly, все думают что он магически их спасёт.18:02
React Component Development Kit voice.kadira.io/say-hello-to-r… Какой-то новый CLI для разработки на React.
19:45@jsunderhood Хорошая тема, всегда такой хотел сделать. Для команды конечно нужно общее решение, но направление очень верное.
Ember ехидно улыбается :)
@jsunderhood Хорошая тема, всегда такой хотел сделать. Для команды конечно нужно общее решение, но направление очень верное.
19:52
# Пятница 93 твита
JSCS объединяется с ESLint eslint.org/blog/2016/04/w… Последняя версия JSCS будет 3.0.0
8:06Meanwhile, in a parallel universe… commitstrip.com/en/2016/04/14/… pic.twitter.com/R4VW0TvHsT
8:10Кто-нибудь еще использует JSCS?
8:15@jsunderhood да. А не надо? eslint все дела?
ну теперь уже точно ESLint
@jsunderhood да. А не надо? eslint все дела?
8:17
@jsunderhood @bayevn видел, что их вместе используют. Jscs фисит больше ошибок?
Про JSCS не знаю, но например в ESLint никогда не использовал эту функцию.
@jsunderhood @bayevn видел, что их вместе используют. Jscs фисит больше ошибок?
8:23
@jsunderhood Давно уже перешёл на Еслинт.8:23
А у вас есть стайлгайды по JS? Например через .eslintrc
8:24Мы форкнули стайлгайд airbnb и подогнали под себя github.com/redradix/javas…
8:27день, когда мир узнал, что был ещё какой-то JSCS.8:28
Как вы форсите использование стайлгайда в команде?
8:29У нас кто-то сидит на Atom, кто-то на ST, а другие на Vim. За всеми не уследишь.
8:30@jsunderhood двоечкой в eslintrc с препуш хуком
Кстати да, у нас пре-коммит хук для этого часто используется.
@jsunderhood двоечкой в eslintrc с препуш хуком
8:31
@jsunderhood @github оу, а почему предпочли форк оверлоаду нужных правил?
Мы были согласны с большинством правил, а остальные подогнали через голосование
@jsunderhood @github оу, а почему предпочли форк оверлоаду нужных правил?
8:33
@jsunderhood Я так же сделал: github.com/tamiadev/eslin…8:33
@jsunderhood Пока что словесными пинками и падающим CI.8:33
@jsunderhood пока код не отлинтован нормально (legacy?) - пинками на ревью8:35
отлинтовали большую часть - вешаем 2 на хук
Заметил, что самые неаккуратные — пользователи Vim. Ну или у нас в команде так совпало просто.
8:37@jsunderhood неаккуратные в плане чего?
В плане соблюдения стайлгайда
@jsunderhood неаккуратные в плане чего?
8:41
@jsunderhood ахахаха, это потому что syntastic (линтогонялка) тормозит и recheck on save8:41
Говорят, что в neomake всё ок, но я не проверял
@jsunderhood использую стайл airbnb8:42
Давайте поговорим об организации процесса разработки с React. У вас верстка отдельно или на этапе создания компонентов?
8:44@jsunderhood У нас Реакт Бутстрап, но у нас админка.8:45
У нас так поставлен процесс, что дизайнеры сами верстают и разработчикам приходит готовая верстка, которую нужно перегнать в компоненты.
8:46Верстка сама по себе уже компонентная, оформлена в виде гайда по проекту. Что-то типа @SourceJS от @operatino, только на middleman
8:47Для ускорения процесса создания компонентов React из верстки я и написал html2react github.com/roman01la/html…
8:49@jsunderhood outsource чистой версткой через html-to-react8:50
in-house сразу компонентами со всем-всем-всем
@jsunderhood прогеры на vim... Я наверно что то упустил в этой жизни. Неужели удобно?
emacs тоже удобно, дело привычки
@jsunderhood прогеры на vim... Я наверно что то упустил в этой жизни. Неужели удобно?
8:50
@jsunderhood объясни им как выйти из vi. Может они не могут, а им просто нужен редактор попроще?
😂
@jsunderhood объясни им как выйти из vi. Может они не могут, а им просто нужен редактор попроще?
8:51
Шутка про "дизайнер никому ничего не должен"
Многие даже во фреймере сами анимацию колбасят и это очень круто twitter.com/jsunderhood/st…
У нас была попытка использования инструментов для прототипирования в связке со Sketch, но чёт не прижилось
Шутка про "дизайнер никому ничего не должен"
8:53
Многие даже во фреймере сами анимацию колбасят и это очень круто twitter.com/jsunderhood/st…
@jsunderhood а чё там щас верстать, ляп-ляп флексом, автопрефиксер и готово bfolder.ru/_ph/41/4389794…
У нас большинство проектов IE10+, но флексбокс видимо ещё не заходит верстальщикам
@jsunderhood а чё там щас верстать, ляп-ляп флексом, автопрефиксер и готово bfolder.ru/_ph/41/4389794…
9:05
@jsunderhood я пока для некритичных фич использую. Думаете пора в лаяуты?
С этим вопросом в @cssunderhood
@jsunderhood я пока для некритичных фич использую. Думаете пора в лаяуты?
9:17
@jsunderhood Начали верстать статические прототипы на реактовых компонентах. Билдим html/css/js. Потом этот код компонент используем в прод.9:17
@jsunderhood у нас в команде его юзаем, но никогда ничего полезного он не ловил. слава богу оно растворится в eslint.9:18
@jsunderhood Если в проде от компоненты нужны только стили, то js отрезается бабелом. Бонусом получили трекинг зависимостей.9:18
@jsunderhood В общем случае в проде может и не быть реакта, но весь пототип будет на нём. Из минусов: всем (и дизайнерам) понимать реакт.9:19
@jsunderhood ну вот не надо вот. Ты пытаешься разделить неделимое. @cssunderhood
ладно) у кого флексбокс в проде?
@jsunderhood ну вот не надо вот. Ты пытаешься разделить неделимое. @cssunderhood
9:21
@jsunderhood @SilentImp @cssunderhood у нас. И как я раньше без него жил :-)9:26
Вообще да, флексбокс для разработчика — отличный инструмент для прототипирования. Я без него нормальный лейаут запарился бы делать.
9:36Верстка уже забывается :(
9:37Судя по отзывам, флексбокс уже мейнстрим.
9:38@jsunderhood, флексбоксы уже устарели, надо начинать готовиться к Гридам.
Когда-то пробовал грид лейаут, прикольная штука
@jsunderhood, флексбоксы уже устарели, надо начинать готовиться к Гридам.
9:51
@jsunderhood – куда там float: left? тут? а здесь обнулять? или так? v1.std3.ru/54/96/14607086…9:51
@jsunderhood надо же … сейчас окажется, что люди на проде уже и grid пробуют >_<9:52
@jsunderhood есть ещё eslint-loader для вебпака который все ошибки линтинга сразу в консоли браузерной показывает.9:52
@SilentImp @jsunderhood ну так по недавнему опросу на сайтпойнте в его употреблении признались... аж 36%! sitepoint.com/results-ultima… :)10:06
@jsunderhood есть офигенная либа для postcss github.com/peterramsing/l…10:06
@jsunderhood @Bizi есть отличная статья о том, чем отличаются флексы от грида, легко гуглиться. У них разные задачи10:06
Тем временем в Амстердаме пасмурно и прохладно pic.twitter.com/sgQYds0pTN
10:57KharkivJS №6 21 мая: Node.js под нагрузкой, ClojureScript, RxJS, асинхронность, архитектура kharkivjs.org pic.twitter.com/EQ2PZ8QpsL11:01
@jsunderhood я в пути. Может вечером какой-нибудь движ?
Устроим пре-пати? :) /сс @operatino
@jsunderhood я в пути. Может вечером какой-нибудь движ?
13:18
касается многих хипстеров-разработчиков13:55John Lennon pic.twitter.com/xIvRrCxL4V
@jsunderhood Мы на speakers dinner в Loetje aan ’t IJ", Werfkade 14, 1033 RA Amsterdam с 18:00.14:25
@jsunderhood что бы полезного почитать про рендер реакта на сервере? Сейчас в ноде renderToString у меня чудовищно медленно работает.14:29
@Dmiterko_Roman @jsunderhood посмотреть youtube.com/watch?v=PnpfGy…
Толковый доклад про оптимизацию серверного рендеринга в React
@Dmiterko_Roman @jsunderhood посмотреть youtube.com/watch?v=PnpfGy…
14:31
Матерые разработчики бекенда ругают Node.js и говорят, что никогда на этом писать не будут. Почему?
14:37@jsunderhood Потому что они настолько матёрые, что переключиться на новую технологию им сложно. Проще её ругать, чем осилить.14:42
@jsunderhood Понты и история наивности в самом начале истории ноды. Все стало лучше, а стереотипы остались.14:42
Ещё вопрос про ноду: как правильно использовать кластер и все, что связанно с распараллеливанием задач? Наверное это мало кто использует.
14:44.@operatino @jsunderhood здесь всё достаточно субъективно. У кого-то здесь, например, частично переносится нелюбовь к js в принципе.14:46
.@operatino @jsunderhood кому-то не нравится node'овская экосистема, кто-то просто не рассматривает всерьёз ноду как серьёзный инструмент.14:48
@jsunderhood не хранить стейт в оперативной памяти, а вообще смотря для чего.14:53
@jsunderhood думаю это вопрос не конкретно про ноду – у нас решение на основе докера и кубернетес, крутят ноду и го14:53
Для чего вы используете ноду? CLI, API сервера, может кто-нибудь AI делает?
14:55В основном нода хорошо идёт на API. Быстро обрабатывает запросы.
14:56@jsunderhood Вот пишу на ноде CLI который генерирует для меня нужный C-код :)14:56
Скажу вам больше, его даже во фронтэнде использовать стремновато.
@redmoonstudio @jsunderhood14:57@webholt @jsunderhood Просто стремновато JS в бэкэнде использовать.
@jsunderhood стоит упомянуть pm2 github.com/Unitech/pm2
Да, клеевая штука. Раньше его место занимали upstart и forever.
@jsunderhood стоит упомянуть pm2 github.com/Unitech/pm2
14:57
@jsunderhood cli, api, daemons14:58
@jsunderhood Для сборки фронта. В качестве дебаг-сервера.14:58
Никогда не видел, что бы делали долгоиграющие процессы на ноже.
14:59*ноде 😅
15:00@jsunderhood оп, фраерок, процессы на ноже
На ноже обычно все решается быстро, процессы не нужны 😂
@jsunderhood оп, фраерок, процессы на ноже
15:04
Уже появились билеты на Reactive Conf 2016 reactiveconf.com/#tickets Судя по докладчикам, будет сильно
15:13@jsunderhood там же нет статической типизации, а без нее никак не пишется: видимо, матерые разработчики всегда ошибаются именно в типах15:40
@jsunderhood потому что на бекенде богатый выбор15:40
@jsunderhood pm2 или нативный кластер, который по round robin отдает реквесты подпроцессам15:41
@jsunderhood API прекрасно идет: Mongo+Swagger, или вот щас GrpaphQL пойдет15:41
@jsunderhood небольшие и быстрые (иногда даже низкоуровневые) сервисы, они же микро по модному15:42
@jsunderhood у меня в основном CLI для тулзов, ибо С - излишне сложно, а Bash - очень извращенно17:01
А кто работает удаленно? Что вы делаете, чтобы поддерживать чувство «team member»? Это проблема, на самом деле.
17:24@jsunderhood общий чат. Классный шеф :)17:30
@jsunderhood раз в неделю пишем «летопись», как прошла неделька. общаемся при возможности, изредка встречаемся все вместе17:30
Мы ведем активную переписку в Slack, обсуждаем новые технологии. Делаем воркшопы в хенгаутах.
17:43@jsunderhood воркшопы? в хенгаутах?? круто, че
Вполне нормально. Слайды на стену через проектор, стрим с телефона или ноута и у тебя есть ощущение присутствия.
@jsunderhood воркшопы? в хенгаутах?? круто, че
18:09
@jsunderhood skype звонки. Особенно хорошо: обсуждение проблемы на которую взгляды по решению расходятся18:23
@jsunderhood один из элементов: канал в слаке для фоток #a-photo-a-day18:23
@jsunderhood daily fucking scrum fucking morning fucking meetings18:27
@jsunderhood встречаемся вместе и проводим демо и ретро в конце каждого спринта 😉18:28
The F8 App we shipped in the Windows Store is now available on @github github.com/ReactWindows/f…. Let us know if you have issues!18:32
# Суббота 127 твитов
@jsunderhood 4 раза в год летаю в США к сотрудникам6:22
@jsunderhood на самом деле митинги очень хорошо помогают, плюс обсуждения голосом насущных проблем по задачам.6:22
Мы скоро начинаем #reactamsterdam pic.twitter.com/WU8VrCsqcO
7:49@jsunderhood мужик в шоке pic.twitter.com/vG3IPiO7PN7:57
Весь этот фронтэнд — какой-то Амстердам. Все укуренные и со своими велосипедами.8:05Мы скоро начинаем #reactamsterdam pic.twitter.com/WU8VrCsqcO
. @jsunderhood Все ваши ретвиты с тегом #reactamsterdam попадут на твит куб в Амстердаме, да :trollface: pic.twitter.com/R1SFun1Hal8:14
Первый доклад о миграции больших проектов на React pic.twitter.com/7sTp0U5XT7
8:15Рассказывает как переходить на React частями, по одному компоненту. Например можно заменить роутер pic.twitter.com/CHkMnaVrVQ
8:32@squid__xd @jsunderhood А вот этому похоже уже хватит Реакта на сегодня. pic.twitter.com/uw80izqcfv8:32
В Backbone сложно следить за состоянием, а в Redux можно использовать redux-logger и увидеть каждое изменение.
8:37Готовьте ваш код к будущим изменениям, разделяйте код фреймворка и бизнес логику. Так проще мигрировать на новые технологии.
8:42Второй доклад о том, как делать продукт на React и радовать пользователей pic.twitter.com/MxorwuQ0cV
8:45Изолированные компоненты — это хорошо! Разработка в изоляции поможет с этим.
8:48Такие компоненты проще поддерживать и переиспользовать.
8:49Такие компоненты хорошо комбинировать создавая более сложные компоненты.
8:51Как достичь этого? Разрабатывайте компоненты, а не страницы.
8:52Придумывать имена для компонентов сложно. Можно называть их по контенту, внешнему виду или функциональности.
8:59@jsunderhood а зачем на них мигрировать?8:59
В компонентах контейнерах не должно быть разметки и стилей. Только управление данными и рендеринг тупых компонентов.
9:00Используйте «чистые» компоненты, а когда вам нужно состояние или методы жизненного цикла — классы.
9:04Над чем нужно поработать в React? Анимации, жесты и система лейаута. pic.twitter.com/TSkiaFojTf
9:10Следующий доклад @oleg008 о CSS в JS pic.twitter.com/yLYxJmk354
9:13Проблема CSS в глобальном неймспейсе, точнее в селекторах.
9:19.@oleg008 сделал решение — JSS github.com/jsstyles/jss
9:20Проблема в специфичности селекторов pic.twitter.com/AImB9bKDXe
9:22И в сложных селекторах. Используя пре-процессоры вы все равно получаете CSS. Вложенности и вот это все раздувает стили.
9:24Что такое JSS? pic.twitter.com/TQ4ZinLPMJ
9:26Так записываются медиа запросы pic.twitter.com/todF8EAEzS
9:31JSS не привязан к React, расширяем плагинами и генерирует только необходимый CSS pic.twitter.com/mPniw6Bhms
9:35Следующий доклад о серверном рендеринге в React pic.twitter.com/BJQJs4OO5r
10:17PHP — протохипстер серверного рендеринга pic.twitter.com/ZXb9hGVdpy
10:21С северным рендерингом все счастливы: поисковики, пользователи и ваш менеджер.
10:26Страх и ненависть на конфе по React pic.twitter.com/casPKlhnvP
10:33Проблемы серверного рендеринга: кэширование результата рендеринга и задержка перед ответом, когда нужно наполнить состояние из ремоутов.
10:35Можно стримить рендер с помощью github.com/aickin/react-d…
10:36Ссылки на ресурсы о серверном рендеринге pic.twitter.com/6JpQV0oDwW
10:38Следующий доклад о внутренностях React Native от чувака из Facebook pic.twitter.com/jCOIY3eDrl
10:44В RN работает три потока: для нейтивa, для JS, и для работы с лейаутом.
10:50Также каждый нативный модуль работает в отдельном потоке.
10:51Когда приложение стартует, сначала загружается JS, потом нативные модули.
10:52После загрузки модули регистрируют себя в системе. И параллельно стартует JS VM.
10:54После этого загружается конфигурация в JSON и начинается выполнение JS.
10:55Так работает VM pic.twitter.com/FwdSzJHDX1
10:56Потом создаются shadow views для компонентов с информацией о лейауте и представление рендерится в нативных компонентах.
10:59Все взаимодействия с интерфейсом проходят через мост между JS и нативными модулями. Этот мост что-то вроде роутера.
11:01На iOS нельзя использовать JIT, а в Android можно. Но ведроид все равно тормозит 😅
11:08Следующий доклад о реактивных приложениях с GraphQL на платформе Apollo. Чувак из Meteor pic.twitter.com/nemIr5q49c
11:15@jsunderhood Apollo ещё делают, а Reindex давно есть. reindex.io :)11:17
Работа с данными в Meteor. Все изоморфно (универсально). pic.twitter.com/9HLK8l39B9
11:19Отличия от REST pic.twitter.com/awAEYRYiVL
11:20Один стек для всех платформ и языков pic.twitter.com/uAmGIAcwor
11:22Один сервер, много клиентов pic.twitter.com/tyt0jo4LmF
11:23Apollo pic.twitter.com/AaAFf1lRX1
11:29Блог Apollo medium.com/apollo-stack
11:33На сервере упрощенная работа с GraphQL, на клиенте подобие Relay поверх Redux. Много уделяют DX.
11:35У них есть реактивные GraphQL запросы. Полная синхронизация, в обе стороны.
11:40У нас обед pic.twitter.com/2joLCwYCXo
12:11Следующий доклад о разработке игр с React
12:45ШОК! React — это Doom 3 pic.twitter.com/Rc67BYP4rO
12:49В играх нужно ререндерить весь экран, с React у нас есть компоненты инкапсулирующие изменения.
12:59Компонентный подход позволяет компоновать сущности и создавать юниты в играх. Создавать комбинируемые модификаторы pic.twitter.com/pNfYzaMO4m
13:02Для переключения между сценами можно использовать роутинг.
13:06Можно делать кроссплатформенные игры на RN с почти 100% переиспользованием кода потому, что в играх не нужен UI специфичный для платформы.
13:11Следующий доклад о создании библиотеки WebGL компонентов на React pic.twitter.com/Nv7M9n3gPX
13:16Библиотека компонентов нужна для того, чтобы продует выглядел консистентно на всех клиента/платформах. React отлично подходит для этого.
13:19*продукт
13:20Спойлер: Ангуляр был обманут, но Реакт переубедил его. pic.twitter.com/zI4VAPmB6c
13:22Для разработки библиотеки компонентов отлично подходит разработка в изоляции.
13:23Библиотека ReactLiberty рендерит в DOM, Canvas, WebGL, native или ещё что-нибудь github.com/LibertyGlobal/…
13:34Таким образом UI можно портировать на разные платформы.
13:35Сэттоп боксы очень медленные, DOM тоже медленный, поэтому UI на WebGL.
13:37Один код, разные рендеры для React. Переход между DOM и WebGL в один клик.
13:45Следующий доклад о тестировании в React pic.twitter.com/O2y1rWb1i3
13:46Кто сказал PostCSS? pic.twitter.com/S8yddb6xQn
13:52Выносите логику за компоненты, это проще тестировать pic.twitter.com/rEXVXSs9Is
13:53My lightning talk on approaching React Component Libraries. Exclusively for #reactamsterdam speakerdeck.com/operatino/the-… pic.twitter.com/fUDvUzDUAa13:56
React Test Utils + Shallow Rendering вполне подходит для тестирования компонентов и поведения
13:57Не тестируйте состояние компонента. Состояние инкапсулировано в компоненте. Тестируйте то, что есть на выходе. pic.twitter.com/US2kP4OGQZ
14:02Используйте Sinon или аналоги для тестирования вызова функций/обработчиков событий.
14:05TestUtils писали джависты, Enzyme лучше. Используйте Enzyme github.com/airbnb/enzyme
14:11@jsunderhood джависты? не похоже на фейсбук
Это шутка. Посмотри на имена методов в этой библиотеке :)
@jsunderhood джависты? не похоже на фейсбук
14:15
Следующий доклад об опыте интеграции React в компании pic.twitter.com/YxvZ8b1Oc5
14:49framework vs UI library pic.twitter.com/p21kE1HPsQ
14:50Что, правда? pic.twitter.com/aVpA6nfsF4
14:53@jsunderhood Enzyme имеет проблемы при тестировании в браузере. Интересно какие еще есть варианты.14:53
React — jQuery сегодняшнего дня. Он дал нам возможность так же легко создавать приложения, как jQuery работать с DOM.
14:57Изучая React, фокусируйтесь на чем-то одном, не распыляйтесь. И не расстраивайтесь, когда что-то не получается :) pic.twitter.com/GENl3yJn0G
14:59Этот слайд отлично показывает, почему проекты на JS невозможно поднять через полгода после установки зависимостей pic.twitter.com/3NrTWpX5Wp
15:07@jsunderhood Шринкврап же.
Да. Кстати, говорят он не во всех случаях спасает.
@jsunderhood Шринкврап же.
15:11
@jsunderhood не понятно, зачем DOM заменять webgl'ом, т.е. даже не канвасом?
WebGL hardware accelerated, а Canvas 2D нет, сс @PixelsCommander
@jsunderhood не понятно, зачем DOM заменять webgl'ом, т.е. даже не канвасом?
15:12
Следующий доклад о реактивном программировании и управлении состоянием pic.twitter.com/cuh0XUFef0
15:15У нас тут адепт Штальца: Redux — это велосипед, с кучей мешков на нем. pic.twitter.com/BIvBKzUp43
15:16@jsunderhood коллеги мобильщики во всю пишут первое приложение на react native. Надо бы тоже пощупать, взглянуть под капот...15:16
@jsunderhood хехе, когда ждать движение "you don't need react for this"?
Спроси у Штальца :)
@jsunderhood хехе, когда ждать движение "you don't need react for this"?
15:23
@jsunderhood ну, справедливости ради, Дэн действительно любитель метаабстракций.15:26
Чувак рассказывает о MobX в связке с React pic.twitter.com/NxTEzk8Nxz
15:31@jsunderhood, надо всегда начинать с 1.0.0
Спорное утверждение
@jsunderhood, надо всегда начинать с 1.0.0
15:32
@jsunderhood, хотел начать дискуссию и услышать разные аргументы)15:34
Юзкейс для реактивных библиотек pic.twitter.com/a5koKkWd02
15:35@ilnurkhalilov @jsunderhood 1.0.0 должен быть production ready, а 0.x.x специально для того, чтобы десять раз отрефакторить и изменить API.15:41
Следующий доклад об инструментах разработчика в React Native. Проблемы и их решения. pic.twitter.com/Qz3owaY9Zd
15:43@jsunderhood видео докладов будет надеюсь? Текстовые доклады конечно здорово, но хотелось бы большего :-)
Будет. сс @operatino
@jsunderhood видео докладов будет надеюсь? Текстовые доклады конечно здорово, но хотелось бы большего :-)
15:53
Чтобы не было такого, когда подключаете модуль с нативным кодом или ассетами используйте rnpm github.com/rnpm/rnpm
15:56Чтобы не было вот такого pic.twitter.com/osxWwDHMVq
15:57@lalakalka @jsunderhood все записано, вместе с экраном спикеров, выложим как @MLarchanka закончит монтировать15:57
В общем весь доклад посвящён rnpm.
15:59Неофициальный маскот конфы. pic.twitter.com/Aj3sJ374wt
16:02rnpm будет частью RN CLI
16:09Последний доклад о React Native Playground pic.twitter.com/7sBaNkdVGD
16:15RN playground как jsfiddle, только для приложений rnplay.org
16:19RN playground будет интегрирован в сайт с документаций по RN, чтобы сразу видеть работающие примеры кода.
16:24Изнутри это эмуляторы, которые стримят видео с работой вашего кода.
16:25У нас все. Всем спасибо. pic.twitter.com/dWXkDQdhxR
16:37@lalakalka @jsunderhood не понятно зачем вообще так делать, ведь значительная часть реакт это виртуал дом, который в WebGL совсем не нужен?
Декларативный UI
@lalakalka @jsunderhood не понятно зачем вообще так делать, ведь значительная часть реакт это виртуал дом, который в WebGL совсем не нужен?
17:00
@jsunderhood @PixelsCommander @lalakalka писать 2D интерфейсы на WebGL затратно, OpenGL есть давно, но никто на нём так не делает
Подозреваю, что WebGL более высокоуровневый. Ну и в сравнении с DOM он даёт огромный прирост производительности
@jsunderhood @PixelsCommander @lalakalka писать 2D интерфейсы на WebGL затратно, OpenGL есть давно, но никто на нём так не делает
17:03
@jsunderhood а посоветуй прокладку между React и material? Что-то я в material-ui разочаровываюсь...17:04
.@Trufid @lalakalka ну и @PixelsCommander говорил, что графика кушает меньше памяти, чем DOM. Для сеттоп боксов это критично.
17:05@jsunderhood Написан на основе reindex.io
Кстати да. Докладчик упоминал. Так что не ругайте его :)
@jsunderhood Написан на основе reindex.io
17:06
#reactamsterdam is a wrap! What a cool day thanks all for coming & making it a smashing success! pic.twitter.com/MkAIuvcXbz17:08
@jsunderhood @lalakalka @PixelsCommander интересно, что из этого получится, ведь по сути это повторение работы браузера, свой DOM
Думаю уже получилось. Если я правильно понял, то все это уже работает на устройствах пользователей.
@jsunderhood @lalakalka @PixelsCommander интересно, что из этого получится, ведь по сути это повторение работы браузера, свой DOM
17:13
@jsunderhood @ALF_er @freiksenet_ru одна из этих проблем: github.com/npm/npm/labels… (git || peer daps) + shrinkwrap = issues20:13
Awesome layout grid with React, Angular, etc golden-layout.com Really nice work!21:05
Blog Post: How I Structure Elm Apps.21:42blog.jenkster.com/2016/04/how-i-…
A project layout recipe that @elmlang-wranglers may find useful. :-)
# Воскресенье 32 твита
Created a new @babeljs preset for optimizing @reactjs code: github.com/thejameskyle/b… (lots more to come)7:36
Сегодня день полезных ссылок. Присылайте, буду ретвитить. В том числе ссылки на ваши интересные проекты.
8:10@jsunderhood @podcastcode подкаст про идеи в программировании. Последний выпуск про Event Loop и корутины soundcloud.com/podcastcode/3-…8:39
@jsunderhood "был в сети 15 минут назад" github.com/halt-hammerzei…8:40
@jsunderhood webpack плагины в бабеле github.com/istarkov/babel… написал в НГ ночью, сильно навеселе :-)8:41
@jsunderhood еще один логгер без х*рни github.com/btd/huzzah8:43
@jsunderhood написал свой таск раннер github.com/start-runner/s… получилось даже круче и любопытнее, чем изначально хотелось. везде используем.8:45
@jsunderhood у Pony Foo не так давно появилась еженедельная рассылка ponyfoo.com/weekly8:58
@jsunderhood Интерактивный воркшоп по markdown github.com/denysdovhan/ho…8:58
@jsunderhood и еще интерактивный туториал по bash: github.com/denysdovhan/le…8:58
@jsunderhood подружил bem с react: github.com/agudulin/dumb-…8:58
@agudulin @jsunderhood reBEM: React ♥ BEM medium.com/@mistadikay/re… / github.com/rebem/rebem 😼9:33
Elm-StartApp and PureScript-Pux example side by side. Super excited where Pux is going.9:43
@jsunderhood рантайм типизация js на основе haskell function definitions github.com/yarax/duckless10:44
"Awesome list of GraphQL & Relay" github.com/chentsulin/awe…11:23
@jsunderhood cистема прототипирования со смешанным окружением github.com/theprotein/pro… под капотом electron и react11:35
@jsunderhood честный #b_ в React github.com/awinogradov/re… #CSS, @bemxjst, уровни переопределения. Описание работы github.com/bem/bem-forum-… ;)11:39
Кто-нибудь уже сделал полезного чат-бота? Сейчас дикий хайп вокруг этого.
11:40Мессенджер Luka с множеством AI ботов medium.com/p/69219eb478d9
11:44@jsunderhood лет 10 назад писал чат-ботов для ирц на перле и не знал что такое хайп :)11:45
@jsunderhood PostHTML github.com/posthtml/posth… – @PostCSS для HTML с кучей плагинов и интеграций со всеми возможными инструментами ;)11:56
Наверное самые крутые боты — это те, которые могут общаться между собой. Например холодильник с супермаркетом и службой доставки.
12:05@jsunderhood offline, real-time движок с crdt, mongo запросами и интеграцией с react amelisajs.com13:21
Procedural vs Object Oriented vs Functional Programming funkyjavascript.com/procedural-vs-…
15:37Trees of Promises in ES616:18
2ality.com/2016/04/promis…
Доклад о системе диагностики на борту Boeing 737 MAX написанной на Clojure m.youtube.com/watch?v=iUC7no…
16:22В мобильном клиенте Твиттер появилась возможность создавать описание изображений для обеспечения лучшей доступности pic.twitter.com/Uj9VpfWuFq
17:43Запись о новой возможности в блоге Твиттер blog.twitter.com/2016/accessibl…
17:44Скриншоты показывающие, как это включить и использовать pic.twitter.com/hpEvZ8FxYy
17:46Отключаюсь. Всем спасибо. С вами был Рома @roman01la pic.twitter.com/uZitAiMcqu
19:56# Ссылки
github.com
- https://github.com/terrysahaidak/GitterMobile
- https://github.com/threepointone/disto/tree/graffo
- https://github.com/chenglou/react-motion
- https://github.com/drapanjanas/re-natal
- https://github.com/roman01la/re-tasker
- https://github.com/roman01la/slack-traductor
- https://github.com/svg/svgo
- https://github.com/erikras/ducks-modular-redux
- https://github.com/redradix/redux-base-app
- https://github.com/redradix/redux-base-app/tree/master/docs
- https://github.com/gilbox/react-three-ejecta-boilerplate
- https://github.com/roman01la/react-flux-workshop
- https://github.com/badeball/karma-jsdom-launcher
- https://github.com/roman01la/re-tasker/tree/javascript
- https://github.com/andpor/react-native-sqlite-storage
- https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js
- https://github.com/tonsky/rum/blob/server/examples/rum/examples_page.clj
- https://github.com/xgrommx/awesome-functional-programming
- https://github.com/Kotlin/anko
- https://github.com/mindeavor/es-pipeline-operator
- https://github.com/tc39/proposal-async-iteration
- https://github.com/funcool/beicon
- https://github.com/ptmt/react-native-desktop
- https://github.com/fbsamples/f8app
- https://github.com/bahmutov/babel-service
- https://github.com/mourner/eslint-config-mourner
- https://github.com/redradix/javascript-style-guide
- https://github.com/tamiadev/eslint-config-tamia
- https://github.com/roman01la/html-to-react-components
- https://github.com/peterramsing/lost
- https://github.com/ReactWindows/f8app
- https://github.com/jsstyles/jss
- https://github.com/aickin/react-dom-stream
- https://github.com/LibertyGlobal/ReactLiberty
- https://github.com/airbnb/enzyme
- https://github.com/rnpm/rnpm
- https://github.com/npm/npm/labels/shrinkwrap
- https://github.com/thejameskyle/babel-react-optimize
- https://github.com/halt-hammerzeit/javascript-time-ago
- https://github.com/istarkov/babel-plugin-webpack-loaders
- https://github.com/btd/huzzah
- https://github.com/start-runner/start
- https://github.com/denysdovhan/how-to-markdown
- https://github.com/denysdovhan/learnyoubash
- https://github.com/agudulin/dumb-bem
- https://github.com/rebem/rebem
- https://github.com/yarax/duckless
- https://github.com/chentsulin/awesome-graphql
- https://github.com/theprotein/protein-dynamics
- https://github.com/awinogradov/react-bl
- https://github.com/bem/bem-forum-content-ru/issues/961
- https://github.com/posthtml/posthtml
www.youtube.com
- https://www.youtube.com/watch?v=O_rcdiSJJIc&list=PLDrmKwRSNx7I2op8eTvzREIU-Sfz2FIt6
- https://www.youtube.com/watch?v=w9aE4D6xtP4
- https://www.youtube.com/watch?v=Cd8cNLfGcVo
- https://www.youtube.com/playlist?list=PLHOTezm7WWknic3d4GrphXMCDZcnTPWHZ
- http://www.youtube.com/playlist?list=PLHOTezm7WWkmk_NxC51xwnC2YsAut_5vX
- http://www.youtube.com/playlist?list=PL8FE88AA54363BC46
- https://www.youtube.com/watch?v=urQ5o754TU4
- https://www.youtube.com/watch?v=I7IdS-PbEgI
medium.com
- https://medium.com/@taion/react-router-is-dead-long-live-rrtr-d229ca30e318#.xxcy56wqy
- https://medium.com/@ghaiklor/how-v8-optimises-javascript-code-a0f3bbd46ac9#.ef7gvn9ho
- https://medium.com/@ghaiklor/optimizations-tricks-in-v8-d284b6c8b183#.jfg2oorec
- https://medium.com/@roman01la/understanding-transducers-in-javascript-3500d3bd9624#.etwx98hvd
- https://medium.com/@roman01la/avoid-partial-application-in-react-components-3c9e36d7f735#.6wksqasnz
- https://medium.com/@nicoespeon/achieving-point-free-javascript-with-r-converge-overargs-94060fd0ed7a#.20j6f2saz
- https://medium.com/apollo-stack
- https://medium.com/@mistadikay/rebem-react-bem-20d875157017#.h4bzrjxyn
- https://medium.com/p/69219eb478d9
other
- https://gitter.im/razbor-poletov/razbor-poletov.github.com?at=5703933fc1934cf84b23bfac
- https://gitter.im/dev-ua/reactjs
- https://gitter.im/terrysahaidak/GitterMobile
- http://hueypetersen.com/posts/2015/12/28/relay-composite-network-layer-for-querying-local-data/
- http://www.elementscompiler.com/elements/silver/
- http://frontflip.me/possible_themes.html
- http://jsbin.com/niyatuzonu/1/edit?js,output
- http://cljsrn.org/
- http://roman01la.github.io/html-to-react-components/
- http://strapmobile.com/customizer/
- https://gitlab.com/Rich-Harris/buble
- http://elm-lang.org/blog/compiler-errors-for-humans
- http://www.gwtproject.org/
- http://www.meetup.com/Kiev-Clojure-Users/events/230022999/
- https://clojurescript.ru/
- https://clojurescript.ru/repl/
- http://youtu.be/2Kvs2NrZrK0
- http://youtu.be/Fh529ExAtjI
- http://youtu.be/g3UeAsiW88U
- http://youtu.be/PnpfGy7q96U
- http://kharkivjs.org/
- http://blog.jetbrains.com/kotlin/2013/10/writing-kotlin-in-the-browser/
- http://www.sicpdistilled.com/
- http://t.co/aANmAuqNpn
- https://kotlinlang.org/docs/reference/type-safe-builders.html
- https://ponyfoo.com/articles/proposal-statements-as-expressions-using-do
- https://ponyfoo.com/weekly
- https://www.jetbrains.com/mps/?fromMenu
- http://sweetjs.org/
- http://filimanjaro.com/blog/2014/introducing-lazy-evaluation/
- http://makeitopen.com/
- https://blog.whatwg.org/js-modules
- https://blog.redradix.com/
- https://hashnode.com/ama/with-webpack-team-cilqks5re00038g53qqgpvqza#cimccb61i00z8tr53z217i0h7
- https://voice.kadira.io/say-hello-to-react-cdk-97cff692e798#.q6k5y3zey
- http://eslint.org/blog/2016/04/welcoming-jscs-to-eslint
- http://www.commitstrip.com/en/2016/04/14/meanwhile-in-a-parallel-universe-3/
- https://v1.std3.ru/54/96/1460708636-5496decff21e976faf11cfa9f4e04f07.gif
- http://www.sitepoint.com/results-ultimate-css-survey/
- http://holyjs.ru/
- https://reactiveconf.com/#tickets
- http://www.reindex.io/
- https://speakerdeck.com/operatino/the-developers-guide-to-the-react-component-libraries
- https://rnplay.org/
- https://reploy.io/
- http://htmlgl.com/
- https://www.golden-layout.com/
- http://blog.jenkster.com/2016/04/how-i-structure-elm-apps.html
- https://soundcloud.com/podcastcode/3-concurrency-event-loop-coroutines
- http://www.alexmingoia.com/purescript-pux/
- https://telegram.me/sendtoselfbot
- http://amelisajs.com/
- http://funkyjavascript.com/procedural-vs-object-oriented-vs-functional-programming/?utm_content=buffer587d4&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer
- http://www.2ality.com/2016/04/promise-trees.html
- https://m.youtube.com/watch?v=iUC7noGU1mQ
- https://blog.twitter.com/2016/accessible-images-for-everyone