Привет всем!
Сегодня 27 сентября 2015 годя я заканчиваю вести твиттер Backend Secret. Возможно, неделя получилась несколько малоактивной - изнь вносила свои коррективы. Тем не менее, мне очень понравилось общаться со всем вами. Я решил сделать темой недели разработку API и несколько разбавить разговоры о темах, связанных с Девопсом.
Для начала я поделился отличным видео от Dan Gebhardt об эволюции REST API. Я считаю, что это - одно из лучших видео по теме.
Ден - один из соавторов спецификации json-api - сегодня это стандарт де факто для REST API и я надеюсь, что вслед за Rails, Node, Python, PHP, Ember и Backbone он придет и на другие платформы.
Затем мы поговорили о том, какие технологии вы бы выбрали сегодня для разработки API-серверов. Больше всего люди рекомендовали Django REST и Ruby on Rails, но упоминались так же и Node, и Go. В целом все согласились, что самым лучшим вариантом будет та технология и платформа, с которой уже знаком разработчик.
Когда я говорил о Rails, я упоминал некоторые инструменты для сбора метрик и работы с производительностью. TuneMyGC - это сторонний сервис, который собирает метрики работы сборщика мусора на вашем сервере и на основе собранных данных дает вам рекомендации о том, каие параметры сборщика мусора в Руби будут для вашего приложения более предпочтительными. Rack Mini Profiler - потрясающий инструмент, который не только показывает вам метрики текущего запроса, но и может строить для них флеймграфы. Последний инструмент - Skylight - строит гистограммы времени выполнения запросов и позволяет вам понять, чем "быстрые" сценарии выполнения отличаются от медленных.
Также мы поговорили о том, как в современных приложениях сделать поддержку SEO, о связи API и фронтенда, о том, когда стоит использовать WebSockets, поспорили о кодах ответа (признаюсь, я немножко набросил, чтобы послушать разные мнения).
В середине недели я рассказал вам о Backend-as-a-Sevice а также устанавливаемых локально "бекендах". Я считаю, что разработка любого API-сервиса сегодня должна начинаться как раз с такого проекта, бекенд-разработчик по возможности не должен тратить свое драгоценное время на решение однотипных задач. Так же, как фронтенд-разработчики сегодня не пишут свои календарики и таблицы с нуля, так и бекендер не должен в очередной раз писать обработчики простых CRUD-операций. Вместо этого стоит больше времени уделить действительно интересным задачам по обработке данных и развитию продукта в целом. Я сам использовал на продакшене несколько таких BaaS и installable backends и очень рекомендую такой подход.
Связанная с BaaS тема - API Gateways - тут тоже вспомнили несколько решений, в частности Tyk. Это шлюз, который стоит между вашими сервисами и клиентами API и занимается авторизацией, rate limiting, собирает метрики по запросам и т.д.
Последняя полезная ссылка от меня - библиотека паттернов архитектуры мкросервисов. Очень рад, что появился подобный ресурс.
Я надеюсь, что вам было нескучно и что неделя была вам полезной.
Всем спасибо,
Андрей @listochkin
Андрей, спасибо! А можно ссылки сюда вставить? Будет очень удобно.