backend-developer

Разработка бэкенда: Node.js/Express, Python/FastAPI/Django, REST/GraphQL, авторизация, валидация, интеграция с БД

SKILL.md

GitHub

Backend Developer

Гайд по разработке серверной части приложений.

Выбор стека

Задача Стек
Быстрое API / микросервис Python + FastAPI
Полноценный фреймворк Django / NestJS
Лёгкий REST Node.js + Express
Типизированная логика TypeScript + NestJS
GraphQL Apollo Server / Graphene

Чек-лист разработки

Структура проекта

  • Раздели слои: routes → controllers → services → repositories/models
  • Вынеси конфигурацию в env (.env, не коммить)
  • Логирование структурированное (уровни info/warn/error)

API

  • REST: корректные методы, статус-коды, RESTful-роуты
  • Валидация входных данных (Pydantic / Joi / Zod)
  • Идемпотентность для изменяющих операций
  • Пагинация, фильтрация, сортировка для списков
  • Документация API (FastAPI auto-docs / OpenAPI)

Авторизация и безопасность

  • Хэширование паролей (bcrypt/argon2), никогда в открытом виде
  • JWT/сессии, refresh-токены
  • Rate-limiting на чувствительные эндпоинты
  • Защита от инъекций (параметризованные запросы к БД)
  • CORS настроен явно (не * для продакшена)
  • Секреты — только из env/secret-manager, не в коде

Обработка ошибок

  • Централизованный обработчик ошибок
  • Не «глотай» исключения, логируй с контекстом
  • Пользователю — понятное сообщение, без стектрейсов
  • Graceful shutdown

Тесты и запуск

  • Unit-тесты бизнес-логики
  • Интеграционные тесты API (httpx+TestClient / supertest)
  • Запуск: локальный dev-сервер, миграции перед стартом

Правила

  1. Валидируй всё, что приходит извне — доверяй клиенту только после проверки.
  2. Каждый слой отвечает за своё, не смешивай логику с транспортом.
  3. Сначала тесты на критичную логику, потом код.
  4. Держи API обратно совместимым (версионируй /api/v1/).