# Понедельник 58 твитов
Всем доброе утрj! Эту неделю с вам @listochkin - веб-разработчик из Киева, ведущий чатов gitter.im/orgs/dev-ua/ro… и один из @kottans_org
14:18Большинство знает меня как фронтендера и любителя #EmberJS - я даже вел @jsunderhood - но где-то 70% своего времени я провожу на бекенде.
14:20.@scaint пишу на Node, Java (с него я начинал работать), умею и люблю Ruby, а сейчас увлекся Rust и веду @RustUkraine
14:30Достал @backendsecret из загашника чтобы послушать @listochkin14:34
исторически я занялся фронтендом, потому что “заставили” - синьор Java не хотели лезть в JS, а тут под боком джуниор - пусть ковыряет
14:35а затем оказалось, что традиционный бекенд разделяется - часть стала активно заниматься фронтендом и API, а другая - обработкой данных
14:37поэтому если вы любите распределенщину, кафку, спарки, кассандры и хадупы, то вам неделя покажется неинтересной
14:38вместо этого будем говорить об API, интеграции с SPA и обо всем, что есть на стыке бекенда и фронтенда
14:40@backendsecret а почему нода?14:41
После больших и тяжелых Java-серверов хотелось чего-то маленького и стремящегося к простоте. Плюс я люблю JavaScript
14:42Сейчас можно ненароком и на Ноде большое приложение написать, а на Java - маленькое, но изначально это было причиной
14:46@backendsecret с недавних пор приходится писать на node.js разухабистые вещи. Расскажите какие подходы используете, чтобы нормально жить?14:59
.@isotnikov использую генераторы с промисами для асинхронного кода Вот тут я разбираю пример youtu.be/NLPC3EHtiBU?t=… Ну и тесты, я люблю TDD
15:02.@isotnikov у ООП в JS на сервере минимальная роль. Модули, функции, трансформация данных. Данные в виде объектов - это все, что есть.
15:15@backendsecret @isotnikov какие тестовые фреймворки используешь для js?15:15
.@andrey2koba @isotnikov ничего необычного, mocha, chai, istanbul. Всегда работаю с вотчером: сохранил файл - тесты побежали - нотификейшен
15:17@backendsecret @isotnikov какими IDE пользуешься?
Саблайм почти без плагинов в голом виде. Тема Solarized Light, шрифт Source Code Pro 19pt на 15” экране. twitter.com/andrey2koba/st…
15:20@backendsecret для production на Rust что-то писал?
Прямо сейчас пишу один модуль, который принимает данные на вход и преобразует их. Просто trial технологии. twitter.com/skl1f/status/6…
15:32@backendsecret О, привет. Наконец-то кто-то знакомый и известный. Может всетаки перескочишь с раст на го? :)
я очень спокойно отношусь к разным технологиям, и Go-отличная штука. Но времени не хватает попробовать. twitter.com/chubik/status/…
15:40@backendsecret как выбрать транспорт и формат данных между бэком и фронтом? чем руководствоваться?
JSON для публичного API. пока не видел случаев, где это тормозило, но если надо будет, буду пробовать что-то другое twitter.com/PZabolotniy/st…
15:42.@SBozhko ну, меня на Ютубе полно, можно гифок наделать. В целом я похож на этого хмыря. И шмотки такие у меня есть) pic.twitter.com/PDGg1jmRmx
16:06@backendsecret @andrey2koba @isotnikov хммм... Веб-разработка на фаблете? 15" как-то совсем кисло, нет?
А мне нравится работать на ноуте. Обычно это 13 дюймов, но вот пробую пятнашку. Пока ок, но разница не критичная twitter.com/anton_sunrise/…
16:58@backendsecret такой вопрос, а как реализуете нотификации одному пользователю?
Long-polling не подойдет? Не надо морочиться с соккетами, конфигами, баллансингом и работает с любым бекендом. twitter.com/return_none/st…
16:59@backendsecret long polling и используется, интересно было может ещё моднее можно :)
Ну можно вебсоккеты или SSE, но зачем? :) Большие дяди типа Google, FB и Твиттера сидят на поллинге и работает Ок twitter.com/return_none/st…
17:04@return_none19:01
моднее разве что голубиная почта.
* но во первых бритва оккама
* во вторых long-polling более простой и удобный
Excited to hear what he has to say! twitter.com/jfbastien/stat…21:56
@backendsecret скажи, typescript пробовал, если да, то что о нем думаешь?
Серьезного ничего не писал, но считаю важным и полезным проектом. Optional Types + альтернатива Babel.js = хорошо twitter.com/serebro/status…
22:03Добавлю, что никогда от команд, которые вели проекты на TypeScript, я не слышал плохих отзывов.
22:04@backendsecret не думаю что можно сравнивать TS с Babel...
Можно. Сегодня это два транспайлера для ES6, которые на выходе дают компактный код и применяются в продакшене. twitter.com/mr_skriming/st…
22:08Очень важно иметь несколько проектов в такой важной нише для здоровой конкуренции.
22:09@backendsecret что посоветуешь для реализации изоморфного приложения (spa + seo), был ли опыт с ними?
crawl bot -> static HTML files + ngnix rule for bots. Фильтр в Nginx строк на 15, скрипт краулера <300. 2 дня работы twitter.com/serebro/status…
22:25ты не ограничен в использовании фреймворка на клиенте и Node на сервере. Изоморфизм переоценен
22:26@backendsecret мой косяк, плохо сформулировал. Содержимое страниц динамичное и сильно зависит от текущего юзера (рекомендации и т.п.)
Если зависит от юзера, то при чем тут SEO? twitter.com/serebro/status…
22:32@backendsecret думаю выбор такой: static pages, фантом, реакт, метеор и rendr (airbnb)
мой выбор - Ember + FastBoot. Зайди на dockyard.com и походи по страницам - это SPA с server renderring twitter.com/serebro/status…
22:35@backendsecret изоморфность - это круто. Это вместо REST или GraphQL. Но его надо научиться готовить. Рецептов пока не видел.23:22
Всем привет!
На этой неделе с вами будет @anton_davydov и я надеюсь, что вы любите опенсорс так же как и я :)
На самом деле, я рубист, но в последнее время я начал сильно болеть по лиспу, поэтому меня попросили больше говорить про лисп 1/...
10:33Кроме лиспа и руби смотрел на кучу других языков (го, хаскель, эрланг), а так же немного поконтрибьютил в кристал 2/...
10:36@backendsecret По какому из лиспов? clojure?
Сразу хотелось бы оговориться, что нет не clojure. Я больше по scheme twitter.com/freiksenet_ru/…
10:37У меня достаточно много тем для этой неделе, поэтому мы с вами поговорим про языки, учебу, опенсорс и etc 3/...
10:38Ну для вхождения в предметную область - вот вам статья про то, как сделать свой ЯП на racket :)
shmat-razum.blogspot.ru/2011/11/racket…
А как вы относитесь к странным и практически не популярным языкам? Считаете, что изучение таких штук полезно для разработчика?
10:46@backendsecret Я раньше сильно зарубался по лиспу и хаскеля, у меня даже тату есть с (loop (print (eval (read)))). Наверно это было не зря.
Всегда мечтал набить себе что-то, но не мог придумать что именно :D twitter.com/freiksenet_ru/…
10:50@backendsecret Но мне важнее сейчас делать вещи, а не думать о том какой язык крутой.10:50
.@freiksenet_ru никто не спорит, но как мне кажется, для общего развития это невероятно полезно.
10:51@backendsecret конечно10:51
@backendsecret scheme классный нам сейчас на нем функциональное программирование в универе приподают10:52
@backendsecret Теперь я пишу на js и я счастлив. Язык не важен, важно все остальное.10:53
.@freiksenet_ru так у меня нет цели убедить вас всех, что лисп - это серебряная пуля :)
10:54@backendsecret по мне это сроду такого развлечения для вечера пятницы
да, почему бы и нет. Главное, что ты узнаешь что-то новое в этот вечер, а не пропьешь его невесть с кем :) twitter.com/dmitr_y/status…
10:54@backendsecret Я понимаю) Просто рассказываю про свой опыт. У меня нет цели убедить всех что плохо писать на лиспе :)10:55
@backendsecret У меня на нем получается быстро и хорошо делать продукты.10:57
@backendsecret Если смотреть на фронтенд - то писать React это одно удовольствие, все крутые лисп фишки там, типа hot reload.10:58
@backendsecret мне кажется гораздо полезнее для разработчика изучать периодически языки из другой парадигды + подходы, которые в ней приняты11:05
.@unix_tips и какой подход вы могли бы посоветовать? (что больше всего вскрыло голову)
11:07@backendsecret Мне было интересно глянуть классическое ФП. Посмотрел на Haskell, F#, OCaml, ML. В итоге остановился на Haskell и ML.
мне пару дней назад сказали, что OCaml прямо очень православен. Как вы считаете, меня обманули или нет? twitter.com/unix_tips/stat…
11:10# Вторник 25 твитов
В продолжение вчерашнего разговора: для Ruby есть отличный gem github.com/SamSaffron/mes… для c2s/s2s messaging через long-polling. Prod-ready
10:47Вам не нужно ждать, пока выйдет Rails 5 ActionCable или разворачивать рядом Faye. Плюс оно умеет досылать сообщения в случае дисконнекта.
10:50Доклад, где @dgeb поэтапно развивает пример API (sorting, фильтры, pagination) youtube.com/watch?v=2t-_7E… Рекомендация №1 для разработки API.
14:11Ноут окончательно погиб смертью храбрых - раскокал экран пополам. Здравствуй, 13”, Maverics и Source Code Pro 17pt.14:43
Сегодня получился не самый активный день, обживаю старый комп. Проведем опрос: на чем бы вы делали API для SPA и почему?
19:47@backendsecret Django REST framework, потому что Python и очень много всего из коробки плюс swagger легко подключить19:55
@backendsecret а что изначально подкупило это идея Serializes, надеюсь этим заменят стандартные Forms19:55
.@return_none о, никогда не пользовался Django REST. Посоветуй какие-нибудь доклады и статьи про него
19:56@backendsecret буду неоригинален: джанго рест :)
О, ее 1 голос к Django REST, @mkn8rd посоветуй какие-то хорошие доклады или статьи по нему twitter.com/mkn8rd/status/…
19:57@backendsecret сам автор очень хорошо рассказал на Django Under the Hood, а чтобы просто проникнуться достаточно туториала
Нашел видео доклада youtube.com/watch?v=3cSsbe… и слайды speakerdeck.com/tomchristie/re… twitter.com/return_none/st…
20:00Сам добавлю, что при прочих равных выберу Rails и JSONAPI:Resources github.com/cerebris/jsona… потому что Ruby и куча инструментов для него
20:11Например, Rack Mini Profiler - строит флеймграфы для ваших запросов samsaffron.com/archive/2013/0…
20:13Или tunemygc.com - автоматом подстраивает настройки GC для вашего приложения.
20:14Или skylight.io/features который показывает гистограмму запросов и поможет провести глубокий анализ производительности
20:16Одна особенность этих инструментов - легкая встраиваимость в ваш код. Легко профайлить, если перед этим не надо читать тонну мануалов.
20:19@backendsecret питон и рельсы - понятно, а что-то интересное для javascript есть?20:22
@serebro express, koa, restify, sails @backendsecret це мабуть не сильно нові штуки20:23
@backendsecret А есть такое для node? Кроме New relic.
Прям такого глубокого нет пока, но есть keymetrics.io/tour/ и сегодняшний nodesource.com/products/nsolid twitter.com/freiksenet_ru/…
20:31Раньше появлялись продукты для мониторинга Node, но их быстро покупали крупные компании, и их развитие останавливалось. Сейчас вторая волна
20:33@backendsecret странно, что рубисты ещё не сказали о Grape. Отличный мини-фреймворк, со всем, что нужно для REST и API20:37
.@backendsecret на rails-api т.к. плохо знаю другие экосистемы20:49
@backendsecret А кто как реализует X-Rate-Limit? Может что-то готовое есть посмотреть?
Для Ruby есть github.com/bendiken/rack-…
Для Node github.com/tj/node-rateli… twitter.com/serebro/status…
@backendsecret Тут дело привычки, думаю. У меня — Python/Flask-RESTful (если не захочется поэкспериментировать, конечно)
О да, привычка и знание платформы - едва ли не самое важное. twitter.com/iamale_ru/stat…
20:56Вообще из “интересно попробовать” у меня на первом месте пока phoenixframework.org и PEEP stack medium.com/@j_mcnally/the…
21:00Посоветуйте: смена ноута - это повод попробовать Zsh? Что нужно для крутой командной строки?21:04
# Среда 29 твитов
@sharipov_ru @backendsecret жуткая поделка с тупыми багами в "стабильных" версиях которые никто не чинит, и страшнейшим говнокодом внутри
Это про Grape. Сам не пробовал, но вокруг любой технологии мнения разнятся. Я бы выбрал Rails из-за обкатанности twitter.com/as_Crazy/statu…
0:36Точно так же слышал очень полярные мнения вокруг Flask в Python Кто-то за минимализм, а кого-то раздражает делать все руками.
0:37@backendsecret а что думаешь про volt?
скорее нет, чем да - негативный опыт GWT сказывается. Имхо, лучше клиент и сервер разделять хотя бы pjax/turbolinks twitter.com/anton_davydov/…
1:05Причем отдельно клиентский код на Opal писать - имхо ок. Но главное - не смешивать клиент и север.
1:06Доклад, где @dgeb поэтапно развивает пример API (sorting, фильтры, pagination) youtube.com/watch?v=2t-_7E… Рекомендация №1 для разработки API.
Утро доброе, напоминаю, что с вами @listochkin и мы обсуждаем API. Вчера я с вами поделился этим докладом: twitter.com/backendsecret/…
13:50Сегодня получился не самый активный день, обживаю старый комп. Проведем опрос: на чем бы вы делали API для SPA и почему?
А вечером мы перечисляли технологии для разработки REST API, которые нам нравятся: twitter.com/backendsecret/…
13:51Сегодня давайте углубимся в эту тему. Для начало довольно спорный совет: код вашего API не должен возвращать 404, а другой 4xx код.
13:53Таким образом клиент может понять: недоступен ли наш сервер или у он работает нормально, просто нет данных.
13:55хороший вариант отдавать 410 Gone или просто 400.
13:56@backendsecret в статье вашего коллеги в 10 пункте чуть более развернутый ответ habr.ru/p/265569/14:01
@backendsecret если сервер недоступен, то он должен вернуть 5XX, не так ли?
Если бекенд сервер упал, то баллансер спереди может вернуть 404. Не рекомендую именно из-за неоднозначности. twitter.com/PZabolotniy/st…
14:09@backendsecret однако наиболее важным является факт кеширования ответа, если нужен кеш то 41014:13
@backendsecret Если данные не могут быть получены, об этом и надо сообщить, а не вводить клиента в заблуждение.
На практике 404 часто обрабатывается не как error а как отсутствие данных. Вчера юзер данные ввел, а сегодня их нет. twitter.com/PZabolotniy/st…
14:16Иногда важно различать “данных нет, потому что их правда нет” и “данных нет, потому что не смогли их прочитать (а возможно, они есть)”
14:20@backendsecret а какой статус код возвращать если внутренний сервис (например запрос к БД или микросервис) возвращает ошибку?
Думаю, какой-то из 500х. twitter.com/serebro/status…
14:26@backendsecret верно, для второго случая удобно использовать 5XX коды.
Бесспорно. При условии, что ты можешь это сделать. twitter.com/PZabolotniy/st…
14:27@backendsecret что значит "не смогли прочитать"?
Сценарий: бокс и баллансер. Бокс лежит, 500 отдать не может. Баллансер не видит бокс и отдает 404. /cc @PZabolotniy twitter.com/defly_self/sta…
14:30Мы Готовы!!! KharkivJS#5 пройдет 7 ноября в субботу, мы вас ждем - kharkivjs.org ПРОМОКОД - twitter_kharkivJS
А пока мы с вами спорили о кодах ответа, стала известна дата @KharkivJS Приезжайте, будем рады! twitter.com/KharkivJS/stat…
15:41New schedule:Otc 4 - ngReact day @fwdays
Oct 17 - @poltavajs
Nov 7 - @KharkivJS
Nov 14 - @KirovohradJS
Nov-Dec - @KyivJS
JS-события в Украине в конце года. Не забываем также про @webstandards_ru day 31 октября в Минске. twitter.com/listochkin/sta…
16:36@backendsecret что выбрать для нового проекта: Rails + Turbolinks(стандартно) или EmberJS + Rails в качестве API? Хочется SPA, но страшно :)
Ember CLI + Rails для API, но при этом не используй ember-cli-rails gem. Лучше держи фронтенд и бекенд отдельно. twitter.com/bytecheg/statu…
20:47@backendsecret какой статус код возвращать в случае бизнес ошибок? Очень долго спорили: 403, 409, 422?? Или может какой другой?
409 возвращает CouchDB при конфликте записей. 403 - как замена 401 применяется очень часто. 422 не встречал в жизни. twitter.com/Anatolii_Pr/st…
20:59зато мне попадались API, где возвращали 412 Precondition Failed, если с запросом было что-то не так. В теле ответа было описание ошибки.
21:00По идее если у вас идет запись и есть конфликт, и для воркфлоу важно, что это именно конфликт. то 409 - самый правильный ответ.
21:02@backendsecret в разных репках? и деплоить вообще отдельно? как синхронно деплоить и фронт, и бэк при добавлении новой фичи?
Да, деплой отдельно. На какой-то момент держи 2 версии API. Вот хорошее видео для Ember youtube.com/watch?v=4EDetv… twitter.com/bytecheg/statu…
21:22как-бы-JavaScript вместо lua в конфигах Nginx nginx.com/blog/launching… Пока не уверен, что одобряю.
21:25@backendsecret отлично, спасибо! и последний вопрос: как решать вопрос с SEO? prerender.io или есть другие варианты?
Вчера обсуждали:
21:33@backendsecret кстати, в каких проектах оправдано использование CouchDB, учитывая то что везде кричат про MongoDB21:51
.@webusnix CouchDB умеет мастер-мастер репликацию, в сочетании с PouchDB можно делать offline-first apps. @hoodiehq как раз так работает
22:05Вот хороший доклад о важности offline-first и о реализации на основе Hoodie от @espylaub youtube.com/watch?v=dPz_5-…
22:09# Четверг 30 твитов
@backendsecret @webusnix @hoodiehq у нас CouchDB хорошо зашла в проекте, где критично было master-master и ещё ряд её особенностей.0:20
@backendsecret @webusnix @hoodiehq а вообще, если надо быстро, много и часто-часто писать данные – то лично я отдаю предпочтение Cassandra.0:21
10 октября в Минске снова пройдет Я.Субботник. Планирую пойти events.yandex.ru/events/yasubbo… #yasubbotnik14:04
Сегодняшний опрос: что вы думаете о движении не писать бекенд, а взять готовый? Использовали ли подобные решения?
14:21@backendsecret Разве что для pet project. И то, если денег не попросят. В коммерческом проекте — ни в коем случае.14:24
@backendsecret а как это возможно? Я понимаю, что есть сервисы генерирующие json, но это так, для отладки...
Есть так называемые Backend-as-a-Service. Как CMS для сайта, так BaaS для API. twitter.com/dcromster/stat…
14:27Самые популярные сервисы подобного рода @ParseIt от FB и @Firebase от Google. Особенно популярны они в мобильном мире - как бекенд для apps
14:29@backendsecret Что значит "писать свой" - к примеру взял я WordPress и тут понятно, но вот Rails считать за взял или всё-же не взял? :)
Rails, Django, и тд - считаем что свой. twitter.com/POS_troi/statu…
14:30Вот хороший доклад о важности offline-first и о реализации на основе Hoodie от @espylaub youtube.com/watch?v=dPz_5-…
Но есть такие backends, которые вы ставите себе на свое железо. @hoodiehq который я вспоминал вчера - один из них: twitter.com/backendsecret/…
14:35Другой такой проект: deployd.com Работает на Node+Mongo. Обязательно посмотрите демо его возможностей: youtube.com/watch?v=I_Jq1B…
14:37@backendsecret Учитывая что я делаю такой сервис, я считаю что это будущее :)
Расскажешь больше? Что за сервис, какая ниша,что интересного внутри? Когда запуск? twitter.com/freiksenet_ru/…
14:58@backendsecret reindex.io, бакенд с GraphQL API, заточен под React/React Native и Relay в данный момент.15:00
@backendsecret Нам кажется что GraphQL - это то чего не хватало таким сервисам, тк одним REST сыт не будешь.15:00
@backendsecret Мы пытаемся фокусироватся на DX, чтобы девелопер мог юзать любимые инсрументы с Reindex, а не учить новые.15:03
@backendsecret Пока только если эти инструменты этo React/Relay, но это от того что только они пока GraphQL едят.15:03
Но вот кстати, Михаилу @freiksenet_ru и наверное кому-то другим будет интересно. Я работаю с Relay/Falcor-подобной системой
15:07Мы можем запрашивать граф данных, указывать, какие поля нам нужны, какие связанные сущности и их поля и тд. Точно так же работает сохранение
15:12У нас свой синтаксис для этого - система создавалась до того, как объявили о GraphQL.
15:14Но у нас нет механизма сбора требований для графа по компонентам: схема указывается в одном месте для группы компонентов.
15:15Так вот, без агрегации спеки для графа по компонентам такая система (Relay/Falcor) очень и очень неудобна для разработчика.
15:16Поэтому я подозреваю, что без появления агрегаторов граф-спеки для других фреймворков reindex.io рискует оставаться React-only
15:19@freiksenet_ru мне кажется серьёзные вещи не построишь. Но может ошибаюсь т.к. не пробовал, предпочитал сам писать. @backendsecret
Если у тебя UI-heavy приложение, то вполне хватит. Для каких-то нестандартных вещей рядом поднимай отдельные сервисы twitter.com/dcromster/stat…
15:20@backendsecret Потому что надо менять в двух местах и они не особо пересекаются?
больше из-за того, сколько всего уже есть для REST и на клиенте, и на сервере, и проще взять это, чем изобретать twitter.com/freiksenet_ru/…
15:31Falcor/GraphQL/наш бекенд - появились из-за тех условий, в которых оказались компании и проекты, для 99% людей REST подойдет лучше (имхо).
15:33@backendsecret Ну REST-а же нет. Его надо писать и делать все те же велосипеды что и раньше. GraphQL/Falcor стараются это решить.
В том-то и дело, что REST есть: фреймворки типа Django REST, JSONAPI:Resources, BaaS - и умные клиенты для них. twitter.com/freiksenet_ru/…
15:44Об умных клиентах. Это - лучшее видео о Hipermedia, которое я видел. 2010 год, формы, но стоит посмотреть vimeo.com/20781278
15:48Еще один класс продуктов, про которые не все знают - API Gateway. Берут на себя rate limiting, auth, caching, и проксируют запросы на бекенд
21:21Есть несколько API Gateways от разных компаний: aws.amazon.com/api-gateway/ nginx.com/products/ strongloop.com/node-js/api-ga…
21:28Но есть и opensource API Gateway, который можно поставить у себя: tyk.io OAuth, Rate Limiting, API Mocks, Sharding, Metrics
21:30President of Estonia, Toomas Hendrik Ilves, is a coder. Last election 1/3 of votes were cast online #cloudflaresummit pic.twitter.com/PLkf2BJptt22:11
# Пятница 2 твита
Patters of microservices architecture microservices.io/patterns/index… Ссылка полезна тем, кому интересна тема микросервисов, поэтому RT друзьям
14:09@backendsecret что изучать из backend'a если тебе 35 лет, у тебя нет высшего образования и плохое резюме, а тебе хочется делать веб-проекты?
1. Ходи на митапы, общайся с людьми, спрашивай совета у них.
21:43# Суббота 1 твит
Когда заходит разговор о Docker, Mesos, Chef и прочих девопсизмах, я вспоминаю вот эту статью blog.circleci.com/its-the-future/ pic.twitter.com/1D5ezfm143
18:38# Воскресенье 1 твит
Друзья, неожиданно закончилась эта неделя с @backendsecret Мы приятно пообщались, это мой прощальный пост gist.github.com/listochkin/0bc… Пока всем!23:59
# Ссылки
www.youtube.com
- https://www.youtube.com/watch?v=2t-_7Eo4DnI
- https://www.youtube.com/watch?v=3cSsbe-tA0E
- https://www.youtube.com/watch?v=4EDetv_Rw5U
- https://www.youtube.com/watch?v=dPz_5-MEvcg
- https://www.youtube.com/watch?v=I_Jq1BVj6D0
other
- https://gitter.im/orgs/dev-ua/rooms
- https://youtu.be/NLPC3EHtiBU?t=1225
- https://dockyard.com/
- https://github.com/SamSaffron/message_bus
- https://github.com/cerebris/jsonapi-resources
- https://github.com/bendiken/rack-throttle
- https://github.com/tj/node-ratelimiter
- https://speakerdeck.com/tomchristie/rest-framework-under-the-hood
- http://samsaffron.com/archive/2013/03/19/flame-graphs-in-ruby-miniprofiler
- https://tunemygc.com/
- https://www.skylight.io/features
- https://keymetrics.io/tour/
- https://nodesource.com/products/nsolid
- http://www.phoenixframework.org/
- https://medium.com/@j_mcnally/the-peep-stack-b7ba5afdd055
- http://habr.ru/p/265569/
- https://www.nginx.com/blog/launching-nginscript-and-looking-ahead/
- https://www.nginx.com/products/
- https://events.yandex.ru/events/yasubbotnik/10-october-2015/
- http://deployd.com/
- https://www.reindex.io/
- https://www.reindex.io/
- https://vimeo.com/20781278
- https://aws.amazon.com/api-gateway/
- https://strongloop.com/node-js/api-gateway/
- https://tyk.io/
- http://microservices.io/patterns/index.html
- http://blog.circleci.com/its-the-future/
- https://gist.github.com/listochkin/0bc89f9fbc84aa8d6f30
- http://www.call-cc.org/
- http://shmat-razum.blogspot.ru/2011/11/racket.html