backend-developer
Разработка бэкенда: Node.js/Express, Python/FastAPI/Django, REST/GraphQL, авторизация, валидация, интеграция с БД
SKILL.mdskills/backend-developer/SKILL.md
GitHubBackend 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-сервер, миграции перед стартом
Правила
- Валидируй всё, что приходит извне — доверяй клиенту только после проверки.
- Каждый слой отвечает за своё, не смешивай логику с транспортом.
- Сначала тесты на критичную логику, потом код.
- Держи API обратно совместимым (версионируй
/api/v1/).