# Понедельник 49 твитов
Йоханга! На этой неделе с вами @floatdrop - я занимаюсь разработкой на @nodejs в @yandex и немного фронтендом.
6:55@jsunderhood привет. расскажи про необычные кейсы использования nodejs? как долго пишешь на нем? смотришь ли на другие языки? какие?6:59
Кратчайший путь попасть в страну единорогов^W ES7+jsx в @nodejs - это использовать require хук babeljs.io/docs/usage/req… Так я туда и попал.
7:16@jsunderhood в проде это нормально?7:25
@jsunderhood в наше время, nodejs все еще больше редкость или уже нет?7:26
@jsunderhood посоветуй ресурсы по nodejs, по которым а) нужно учиться с нуля б) следить за новостями в) получать инфу по Best practices7:32
"Как начать в NodeJS?" - тут нужно понимать три вещи: 1) JS - асинхронщина с callback's 2) CommonJS 3) Eventloop #nodejsintro
7:39Про eventloop есть хороший доклад - youtube.com/watch?v=8aGhZQ… (но на английском). #nodejsintro
7:40Disclaimer: предыдущие ответы были как reply - их можно посмотреть, если кликнуть на ретвит (пардоньте, исправлюсь).
7:41@baxxabit @jsunderhood @jsunderhood по первому пунту — learn.javascript.ru/nodejs-screenc…7:42
@jsunderhood кстати, об обратных вызовах, async/await — панацея?7:51
Не уверен, что панацея, но это лучшее, что я видел для побега из callback hell. @roman01la
7:54Tip: Если вы погрязли в callback hell, то путь от туда лежит через Promise обертки, потом генераторы + npmjs.com/package/co, async/await
7:56Доклад "Netflix JavaScript Talks - Version 7: The Evolution of JavaScript" хорошо показывает все эти ступеньки: youtube.com/watch?v=DqMFX9…
7:59Сам я начинал вот с этого курса про NodeJS - короткие видео от youtube.com/playlist?list=… @iliakan - давно это было #nodejsintro
8:06@jsunderhood а как вы тестируете потребление памяти и профилируете на iojs?8:15
Мы кладем приложение под танк - github.com/yandex/yandex-… (up to 10k rps) и сразу становится ясно, течет оно или нет.
8:18У нас были эксперименты с DTrace - но не полетело по разным причинам. Проще всего посмотреть heapdump через github.com/c4milo/node-we…
8:21Для серьезных разборок есть два способа - перезапустить процесс и "дебажить корку" в gdb или организовать remote debug (отключив процесс).
8:30Пока я ищу доклад про gdb - посмотрите веселого дядьку из Yahoo - joyent.com/developers/vid… (у joyent много интересных видео).
8:40@jsunderhood Йо! Я тут краем глаза прочел про callback hell. Как на счет машины состояний? В связке с AMD получается очень достойно9:02
Peace
Генераторы - это и есть машина состояний, но из за синтаксического сахара получается прямолинейный и читаемый код - babeljs.io/repl/#?experim…
9:03Похоже я перепутал mdb с gdb, но я был уверен, что и под ubuntu можно посмотреть корку - joyent.com/developers/nod… (joyent.com/developers/vid…)
9:14Ресурсы, чтобы быть в курсе - @echojs @NodeJSWeekly @JavaScriptDaily @changelog плюс фолловить в twitter/github крутых чуваков #nodejsintro
9:45@jsunderhood список крутых чуваков еще хотелось бы узнать!9:50
Hard to say, for example follow @sindresorhus and read awesome list (github.com/sindresorhus/a…). I learned a lot from his code 🐶
10:03Есть вот такой список - jstherightway.org/#whotofollow У меня тактика такая - я подписываюсь на многих, а потом отписываюсь, как пойму, что не мое.
10:05@roman_says_hi @jsunderhood uptodate.frontendrescue.org/#follow-cool-p…, jsunderhood.ru, medium.com/@dan_abramov/m…. twitter.com/edjafarov/list…10:07
@jsunderhood @rastopyr_ua Хочу попросить рассказать как про обычные кейсы: для чего вы используете ноду? Это скорее микросервисы или баржи?10:15
Самый обычный кейс - рендеринг страниц для пользователя, чуть реже REST API (так как еще силен дух python в Я).
10:17Иногда рендеринг переписывают с xslt и perl на NodeJS и (прости господи) BH/BEMHTML. Есть проекты, где вместо B* - angular/backbone/react.
10:20Как не сложно понять по этой странице - yandex.ru/jobs/vacancies… зоопарк у нас еще тот, зато чем заняться найдется всем. :)
10:21Мы медленно, но верно дрейфуем в сторону микросервисов, но сейчас есть очень монолитные части, от которых зависят все приложения.
10:23Чтоб не получить леща — все, что опубликовано в этом твиттере не является официальной позицией Яндекса, а только моим личным видением. :D
10:29@jsunderhood Как переписывание на node сказывается на производительности?10:45
@jsunderhood Ещё вопросец: как вы обходите то, что eventloop может сожрать только одно ядро? Cluster, webworker-threads, по-другому, никак?11:52
@jsunderhood11:59
Большой вопрос, но важный для меня. Можешь перечислить чем должен владеть человек, назовём его джуниором в js.
Когда нибудь я научусь отвечать не в reply на этом аккаунте. Видимо не сегодня :)
12:10@xanf_ua @jsunderhood уже тритй раз вижу такой вопрос) возможно, стоит создать какой-нибудь репозиторий на gh и пулл-реквестить туда списки
Есть вот список вопросов по JS, но для Front-end - github.com/h5bp/Front-end…
На собеседовании в Fb 2/3 от туда были.
@xanf_ua @jsunderhood уже тритй раз вижу такой вопрос) возможно, стоит создать какой-нибудь репозиторий на gh и пулл-реквестить туда списки
12:57
@jsunderhood Задам первый же вопрос оттуда. What did you learn yesterday/this week?
Вчера я узнал о стохастической оптимизации из лекции Дмитрия Ветрова - habrahabr.ru/company/yandex…
@jsunderhood Задам первый же вопрос оттуда. What did you learn yesterday/this week?
13:02
Давайте сыграем в игру - "вот мой код год назад, а вот сейчас". Это очень интересный опыт у разработчика.
14:24@backendsecret интересная игра! Надо бы ввести в правила :) twitter.com/jsunderhood/st…
Правила простые - разница во времени должна быть ~1 год (от полугода и дальше). Ну и должен быть виден прогресс! :)
@backendsecret интересная игра! Надо бы ввести в правила :) twitter.com/jsunderhood/st…
14:36
У нас понедельник подходит к концу, по этому оставлю вам один коан про JS - thecodelesscode.com/case/90 (там много классных).
15:53Try es6katas.org - learn new JS features by fixing unit tests. Includes Map, Arrows, Generators & more: pic.twitter.com/c0UAUxYhaJ16:49
Очень хороший текст про уровни разработчика mattbriggs.net/blog/2015/06/0…16:51
@jsunderhood @vlkosinov свой форк npm на основе двух баз couchdb: private и public. Плюс специальный прокси. Можно было и проще,но вышло так16:51
@jsunderhood а что делать, если течёт? Как искать?
Самый простой способ - сделать heapdump и посмотреть что там накопилось (через github.com/c4milo/node-we… например).
@jsunderhood а что делать, если течёт? Как искать?
17:57
# Вторник 29 твитов
@jsunderhood Кстати, многие коаны переведены на русский thecodelesscode.com/case/90?lang=ru6:02
@jsunderhood доброе утро, по моему мнению, гугл форсируют отказ от старых IE, почему другие гиганты рынка не делают того же и даже наоборот?
Многие компании поддерживают старые IE, так как его доля в трафике довольно большая.
@jsunderhood доброе утро, по моему мнению, гугл форсируют отказ от старых IE, почему другие гиганты рынка не делают того же и даже наоборот?
6:04
Доброу утроу! Что будем делать сегодня?
Fav - пробежимся по нашему стеку
Rt - поговорим про разработку в целом
Ретвиты побеждают!
Сразу разделим программирование и разработку. Программировать обычно начинают гораздо раньше, чем разрабатывать.
7:45Например я программировал в школе на Pascal, в универе на всем, что было в аптечке, в @skbkontur на C#. И это не было разработкой.
7:47Разработка начинается, когда вы несете ответственность за код и вам приходится поддерживать его. От O-сложности переходишь к сложности кода.
7:50Пример уменьшения сложности кода - это использование YAGNI, но видео я потерял по нему, по этому вот другое - youtube.com/watch?v=wf-BqA…
7:57YAGNI часто противопоставляют SOLID. Нужно уметь балансировать между ними, а иногда выходить с этой шкалы - habrahabr.ru/company/skbkon…
8:00Главное правило, к которому я пришел - ваш код должен быть "прост". Про "простой" (simple) код есть супер доклад - infoq.com/presentations/…
8:02Самый простой способ усложнить код - это не использовать сильные стороны языка. Например забыть, что JS это в функциональный язык (ООП ftw!)
8:16Пруф - "James Coglan: Practical functional programming: pick two" 2014.jsconf.eu/speakers/james…
8:18@jsunderhood а почему в Контуре не было ответственности за код?
Я был студентом в Контуре. Очень сложно студенту сделать качественный скачок в разработке, ему надо помогать в этом.
@jsunderhood а почему в Контуре не было ответственности за код?
8:21
@jsunderhood А как там в js выглядит комбинатор неподвижной точки?
В плане - есть функции первого порядка. Но раз спрашиваешь: matt.might.net/articles/imple…
@jsunderhood А как там в js выглядит комбинатор неподвижной точки?
8:25
К особенностям JS можно отнести prototype-наследование и есть отличный доклад "The Better Parts" youtube.com/watch?v=bo36Mr… - посмотрите.
8:33Самый простой способ упростить код - разбить на подзадачи (см. п. 1), но не надо запихивать все в один супер-модуль. pic.twitter.com/qKgoQsrHFr
8:44Для модулей в мире NodeJS есть npm. По слухам там есть все - от CMS (npmjs.com/package/buckets) до one-liners (github.com/sindresorhus/m…).
8:51Как правильно разбивать задачи на модули - вопрос сложный, может быть вы подскажите. Я лишь оставлю вот эту статью - joelonsoftware.com/articles/Leaky…
8:54А вот как взрастить в себе ответственность - тут есть проверенный способ: pet-project в open source.
8:58При разработке N проектов, вы поймете - зачем вам тесты и документация. Через месяц контекст теряется полностью. changelog.com/top-ten-reason…
9:07@jsunderhood интересная идея, а можешь по подробнее ее озвучить? ведь OSS проекты разные бывают (маленькие и не нужные, крупные и активные)
Pet-project хороший способ быть ABC - medium.com/@davidbyttow/a… - если им начинают пользоваться, то +опыт разработки.
@jsunderhood интересная идея, а можешь по подробнее ее озвучить? ведь OSS проекты разные бывают (маленькие и не нужные, крупные и активные)
9:24
Наилучший pet-project (как и рабочий проект) - это тот, которым вы пользуетесь. Принцип Dogfood - joelonsoftware.com/items/2004/04/…
9:27Про dogfooding (и не только) в хорошем видео "Meet the Makers: Ableton Developers at Work" - youtube.com/watch?v=tILlZR…
9:46У нас обед, а вам оставлю замечательное видео о запахах JS - elijahmanor.com/javascript-sme…
Задавайте вопросы, буду рад! pic.twitter.com/2VL4RmITVK
9:57Ищу фронтенд специалиста для анализа быстродействия страницы (проекта) и отчета по исправлению.11:08
/cc @jsunderhood
Как ни странно - вопросов не возникло. Тогда вопрос слушателям - Какие советы по разработке вы бы дали себе несколько лет назад?
15:28@jsunderhood изучай функциональщину, пиши на языках с поддержкой системы типов. думай о бизнесе а не об инфраструктуре15:34
@rastopyr_ua @jsunderhood не верь на слово сеньорам, а тем более тимлидам, их знания есть локальный оптимум. Верь опыту и проверяемым фактам15:41
@jsunderhood я бы посоветовал не бояться совершить ошибку. Меньше думать об имидже, больше о результате.16:05
@jsunderhood следи за здоровьем!16:21
# Среда 25 твитов
Господа разработчики, поделитесь - как вы выкладываете код в продакшн? Мы вот как-то так: softwaremaniacs.org/blog/2007/08/1… #очемнаписатьто
6:52. @greybax зависит от уровня фронтендера. Вот отличный пример "за": "Mark DiMarco: User Interface Algorithms" youtube.com/watch?v=90NsjK…
7:13@jsunderhood у меня очень маленький продакшен, docker compose справляется8:13
Сегодня, видимо, будет день случайных советов.
8:47Если вы используете Express - никогда не вызывайте `next` после `res.send`. Я ставлю `return` после, иначе плавающая ошибка вам обеспечена.
8:49. @iamale_ru @dcromster так точно. Был пример из жизни про рефакторинг - вот упрощенная история: gist.github.com/floatdrop/a5f4…
8:59@jsunderhood вопрос про сравнение express и других низкоуровневых серверов для ноды. Например сравнить с koa.
Express очень гибкий (по сравнению с hapi), но в нем очень легко прострелить себе голову в большом проекте.
@jsunderhood вопрос про сравнение express и других низкоуровневых серверов для ноды. Например сравнить с koa.
9:02
. @jsunderhood стреляют в основном из за двойного вызова `next` - который в свою очередь зовет `res.send` в не связных местах кода.
9:03. @jsunderhood в koajs застрелиться сложнее - так втихушку будет переписываться this.body (если после него сделать yield next).
9:13Преимущество генера^W koajs - flow-control в контроллере. Для Express мы свой di писали github.com/floatdrop/expr… vs gist.github.com/floatdrop/d316…
10:54@jsunderhood что скажешь про это? stormpath.com/blog/nodejs-jw…
Мне нравится JSON payload в jwt.io (похож на macaroons research.google.com/pubs/pub41892.…) - это удобно.
@jsunderhood что скажешь про это? stormpath.com/blog/nodejs-jw…
11:56
Как правильно и удобно деплоить nodejs приложения? Если он в докере?
/cc @jsunderhood
Удобнее `git push heroku master` я еще ничего не видел (github.com/progrium/dokku и thenewstack.io/docker-is-driv…)
Как правильно и удобно деплоить nodejs приложения? Если он в докере?
12:03
/cc @jsunderhood
@jsunderhood в этом и суть, с помощью простой функции gist.github.com/alekseykulikov… мы получаем мощь koa + инфраструктуру и привычность express12:28
Уровни программистов:13:34
вы все знаете — Junior
вы поняли что ничего не знаете — Mid
вам все равно — Senior
bash.im/quote/429538
Junior programmer's bookshelf: 90% APIs and programming languages; Senior programmer's bookshelf: 80% applied psychology.17:10
Если вам нужно протестировать модуль работающий с fs и http, то mock-fs (github.com/tschaub/mock-fs) и nock (github.com/pgte/nock) в помощь.
17:22Для валидации данных у меня всегда под рукой validator.js (github.com/chriso/validat…) и joi (npmjs.com/package/joi).
17:32Для запросов по HTTP(s) мы, внезапно, используем got (github.com/sindresorhus/g…).
17:52@jsunderhood Как по-твоему, нюансы HTTP вроде chunked encoding или gzip должны обрабатываться на стороне ноды или реверс-прокси?
TLS и gzip лучше перекладывать на проксю, а chunked по ситуации (longpooling нельзя буфферизировать, etc...).
@jsunderhood Как по-твоему, нюансы HTTP вроде chunked encoding или gzip должны обрабатываться на стороне ноды или реверс-прокси?
18:25
@jsunderhood есть ли преимущества перед request помимо стримов?
У got правильная опция json (github.com/request/reques…), понятные ошибки, он минималистичный.
@jsunderhood есть ли преимущества перед request помимо стримов?
18:53
AMA - Why small focused modules github.com/sindresorhus/a…19:08
Больше модулей хороших и разных! Для этого даже генератор есть github.com/sindresorhus/g…
19:11@jsunderhood а нужен ли Yeoman? Ведь он со старта создает столько ненужных в данный момент вещей.
Есть версия и без yeoman - github.com/sindresorhus/n…
@jsunderhood а нужен ли Yeoman? Ведь он со старта создает столько ненужных в данный момент вещей.
19:34
. @alexeyraspopov мы yeoman используем для генерации проектов - довольно удобно.
19:40@jsunderhood есть ли, на твой взгляд, в request что-то, из-за чего его стоило бы использовать вместо got?
В request гораздо больше встроенных фишек, что сказывается на его размере. Я не использую его внутри других модулей.
@jsunderhood есть ли, на твой взгляд, в request что-то, из-за чего его стоило бы использовать вместо got?
19:57
# Четверг 13 твитов
Clever, very clever pic.twitter.com/85HbusAZX88:16
We're live youtube.com/watch?v=Uclvvq… #reacteurope8:18
Browserify и webpack уже классика - а я рекомендую посмотреть еще на jspm.io (использует github.com/ModuleLoader/e…)
8:54Recap: Стили в JS упрощают разработку - изменения происходят в одном месте, а не в нескольких файлах. Используют они github.com/FormidableLabs…
9:09Recap: чувак написал github.com/elierotenberg/…
9:58. @iSnifer @andreypopp в этом одна из главных фич jspm - он умеет это делать на лету, а умеет и bundle собрать, где все уже сделано.
10:33. @iSnifer они будут подключены. Посмотри m.youtube.com/watch?v=NpMnRi… - ребята с react использую и все хорошо у них :)
10:50. @iSnifer webpack для меня выстрелил, когда его начал facebook продвигать и развивать для React. До этого я webpack не понимал вообще.
11:11@jsunderhood у меня вопросик: товарищи фронтендеры, что вы думаете об использовании CoffeeScript в проектах? За/против. Когда можно и нет.12:32
. @Kern_0 imho от языка должна быть значительная польза (TS - система типов, CJS - dead code elimination). А от CS один сахар ¯\_(ツ)_/¯
12:34. @andrey_sitnik ну, я со свечкой не стоял - но CS теряет позиции - это факт slideshare.net/NeilGreen1/typ…, по этому я уже на него не смотрю.
13:01Путин: «Иностранные фонды шарят по школам и сажают на гранты талантливых детей». Редкий случай, когда я согласен. Грант — говно. Только Галп14:22
Зацените отличные слайды от @neilfeyn на тему выбора между ES6/TypeScript/CoffeeScript.15:28
slideshare.net/NeilGreen1/typ… @jsunderhood
# Пятница 7 твитов
@jsunderhood расскажи как писать бенчмарки (а также что почитать и посмотреть)
Для бенчмарков js кода я использую matcha (npmjs.com/package/matcha) - не дает хирургическую точность, конечно.
@jsunderhood расскажи как писать бенчмарки (а также что почитать и посмотреть)
17:05
Если нужно быстро замерить, сколько кусок кода выполняется в ms - то console.time вполне себе инструмент - blog.mariusschulz.com/2013/11/22/mea…
17:07@jsunderhood расскажи про опыт создания и поддержки генератора для бойлерплейт-проекта внутри компании? tips & tricks
Коротко - бойлерплейт должен быть у команды и отвечать их требованиям, общий "на всех" делать не получится.
@jsunderhood расскажи про опыт создания и поддержки генератора для бойлерплейт-проекта внутри компании? tips & tricks
17:09
BEM - методология для именования классов для CSS! getbem.com #пятница
17:25Много хороших видео по JS (некоторые я уже постил) - github.com/bolshchikov/js…
17:29@jsunderhood У Rails есть гем Exception Notification (middleware для уведомлений об ошибках). Какие tools & best practices есть для Node?
Я бы порекомендовал getsentry.com (github.com/getsentry/rave…) - слать все туда.
@jsunderhood У Rails есть гем Exception Notification (middleware для уведомлений об ошибках). Какие tools & best practices есть для Node?
18:59
@jsunderhood я такую штуку составлял недавно.19:17
gist.github.com/beshkenadze/fe…
# Суббота 3 твита
GraphQL.js – A reference implementation of Facebook's GraphQL for JavaScript chlg.co/1HDI3A315:01
Внимание вопрос: какую книжку по #javascript вы считаете самой крутой?
Ну выбор очевиден, я считаю - jsforcats.com/javascript-for…
Внимание вопрос: какую книжку по #javascript вы считаете самой крутой?
19:27
. @pvlpvs @beshur Douglas Crockford, JavaScript: The Good Parts - shop.oreilly.com/product/978059…
19:39# Воскресенье 4 твита
Invisible Code by Martin Kleppe at JSConf Budapest 2015 - youtube.com/watch?v=T3xMyZ…
14:43Неделя подходит к концу - с вами был @floatdrop. Спасибо, что были с нами!
15:54Live React: Hot Reloading with Time Travel at react-europe 2015 by @dan_abramov youtube.com/watch?v=xsSnOQ…
17:44# Ссылки
gist.github.com
- https://gist.github.com/chinchang/a66fe3aedaf98b2433eb
- https://gist.github.com/floatdrop/a5f4cc79d160d0f09a87
- https://gist.github.com/floatdrop/d316850e08c4eaaf29a0
- https://gist.github.com/alekseykulikov/c63ac825e176fa650fb6
- https://gist.github.com/beshkenadze/fe05485f4d635886ca1a
www.youtube.com
- http://www.youtube.com/watch?v=8aGhZQkoFbQ
- http://www.youtube.com/watch?v=DqMFX91ToLw
- https://www.youtube.com/playlist?list=PLsuEohlthXdkRSxJTkmTstWKHgBHsd3Dx
- https://www.youtube.com/watch?v=wf-BqAjZb8M
- http://www.youtube.com/watch?v=bo36MrBfTk4
- https://www.youtube.com/watch?v=tILlZRLhBJE
- http://www.youtube.com/watch?v=90NsjKvz9Ns
- https://www.youtube.com/watch?v=UclvvqNtNNo
- https://www.youtube.com/watch?v=T3xMyZH93i8
- https://www.youtube.com/watch?v=xsSnOQynTHs
www.npmjs.com
- https://www.npmjs.com/package/co
- https://www.npmjs.com/package/buckets
- https://www.npmjs.com/package/joi
- https://www.npmjs.com/package/jspm-server
- https://www.npmjs.com/package/matcha
github.com
- https://github.com/yandex/yandex-tank
- https://github.com/c4milo/node-webkit-agent
- https://github.com/sindresorhus/awesome
- https://github.com/h5bp/Front-end-Developer-Interview-Questions
- https://github.com/reactjs/express-react-views
- https://github.com/floatdrop/chnpm/blob/193fdf0541e3c085b9f08eb241a53f7238faa662/index.js
- https://github.com/floatdrop/chnpm/blob/master/index.js
- https://github.com/sindresorhus/max-safe-integer/blob/master/index.js
- https://github.com/floatdrop/express-dinja
- https://github.com/progrium/dokku
- https://github.com/tschaub/mock-fs
- https://github.com/pgte/nock
- https://github.com/chriso/validator.js
- http://github.com/sindresorhus/got
- https://github.com/request/request/issues/718
- https://github.com/sindresorhus/ama/issues/10#issuecomment-117766328
- https://github.com/sindresorhus/generator-nm
- https://github.com/sindresorhus/node-module-boilerplate
- https://github.com/sindresorhus/got/issues/22
- https://github.com/ModuleLoader/es6-module-loader
- https://github.com/FormidableLabs/radium
- https://github.com/elierotenberg/react-nexus
- https://github.com/clojure/clojurescript/wiki/Quick-Start#production-builds
- https://github.com/bolshchikov/js-must-watch
- https://github.com/getsentry/raven-node
other
- https://babeljs.io/docs/usage/require/
- https://babeljs.io/repl/#?experimental=true&evaluate=true&loose=false&spec=false&code=function%20*%20genme()%20%7B%0A%20%20yield%201%3B%0A%20%20yield%202%3B%0A%20%20return%20%22done%22!%0A%7D
- https://learn.javascript.ru/nodejs-screencast
- https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/
- https://www.joyent.com/developers/videos/node-js-on-the-road-sf-dav-glass
- http://www.joyent.com/developers/node/debug/mdb
- https://www.joyent.com/developers/videos/nodeconfeu-2013-example-debugging-session-using-dtrace-and-mdb
- http://npmjs.org/koajs
- https://en.wikipedia.org/wiki/Single_responsibility_principle
- http://jstherightway.org/#whotofollow
- http://uptodate.frontendrescue.org/#follow-cool-people
- https://jsunderhood.ru/
- https://medium.com/@dan_abramov/my-react-list-862227952a8c
- https://medium.com/@davidbyttow/abc-always-be-coding-d5f8051afce2
- https://yandex.ru/jobs/vacancies/dev/?cities=213
- http://npmjs.com/recluster
- http://npmjs.com/luster
- http://npmjs.com/co
- http://12factor.net/
- http://research.google.com/pubs/pub43438.html
- http://research.google.com/pubs/pub41892.html
- https://flynn.io/
- http://habrahabr.ru/company/yandex/blog/261245/
- http://habrahabr.ru/company/skbkontur/blog/260781/
- http://thecodelesscode.com/case/90
- http://thecodelesscode.com/case/90?lang=ru
- http://es6katas.org/
- http://mattbriggs.net/blog/2015/06/01/the-role-of-a-senior-developer/
- http://www.infoq.com/presentations/Simple-Made-Easy
- http://2014.jsconf.eu/speakers/james-coglan-practical-functional-programming-pick-two.html
- http://matt.might.net/articles/implementation-of-recursive-fixed-point-y-combinator-in-javascript-for-memoization/
- http://www.joelonsoftware.com/articles/LeakyAbstractions.html
- http://www.joelonsoftware.com/items/2004/04/16.html
- https://changelog.com/top-ten-reasons-why-i-wont-use-your-open-source-project/
- http://blog.freecodecamp.com/2015/01/a-vision-of-coding-without-opening-your-eyes.html
- http://elijahmanor.com/javascript-smells/
- http://softwaremaniacs.org/blog/2007/08/15/deb-packages-in-yandex/
- http://jwt.io/
- http://thenewstack.io/docker-is-driving-a-new-breed-of-paas/
- http://bash.im/quote/429538
- http://jspm.io/
- http://javascriptplayground.com/blog/2014/11/js-modules-jspm-systemjs/
- http://m.youtube.com/watch?v=NpMnRifyGyw
- http://www.slideshare.net/NeilGreen1/type-script-vs-coffeescript-vs-es6
- https://blog.mariusschulz.com/2013/11/22/measuring-execution-times-in-javascript-with-consoletime
- http://getbem.com/
- http://getsentry.com/
- http://chlg.co/1HDI3A3
- http://jsforcats.com/javascript-for-cats.pdf
- http://shop.oreilly.com/product/9780596517748.do
- https://hacks.mozilla.org/2015/06/es6-in-depth-arrow-functions/