РИТ++ 2017 завершён!

Консервативный Backend на Node.jsЭлементы архитектуры

Доклад принят в программу конференции
Дмитрий Ляпин
Recrumatic

Профессионально занимаюсь разработкой 13 лет. В настоящий момент специализируюсь на backend'е; предпочитаемые технологии: Node.js, PostgreSQL. Окончил МГТУ им. Баумана каф. ИУ-7 в 2009 г.

Тезисы

Я расскажу об опыте разработки REST API сервиса одной рекрутинговой платформы. Стремясь найти простое и масштабируемое решение, мы выбираем PostgreSQL и Node.js, а вместо сессий используем JWT-токены. Избегая ORM, мы пишем большие и сложные, но эффективные SQL-запросы. На помощь приходят SQL-представления, триггеры и небольшая собственная JS-библиотека.

Проделав несколько неудачных итераций, мы находим такое решение по организации структуры проекта, благодаря которому весь код Backend'а умещается в 4 директории без вложенных папок. Мы используем сервисы Amazon: EC2, RDS, SES; и написали небольшой медиасервис, работающий поверх S3. Он умеет масштабировать картинки на лету и является единой точкой загрузки файлов.

Система 1.5 года находится в продакшн, её оказалось легко поддерживать и развивать. Мы используем ряд современных инструментов, но в центре нашей концепции лежит реляционная база данных.

API
,
PostgreSQL
,
Организация доступа к базам данных, ORM, собственные драйвера
,
Архитектурные паттерны
,
Работа с облачными сервисами

Другие доклады секции Элементы архитектуры