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