Консервативный Backend на Node.jsЭлементы архитектуры
Профессионально занимаюсь разработкой 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 года находится в продакшн, её оказалось легко поддерживать и развивать. Мы используем ряд современных инструментов, но в центре нашей концепции лежит реляционная база данных.