Backend: roadmap
HTTP, API-контракты, SQL, безопасность и эксплуатация перед осознанным выбором web-фреймворка.
Backend начинается с протокола и данных
Backend принимает запрос, проверяет данные и полномочия, выполняет правила предметной области, изменяет состояние и возвращает ответ. Фреймворк помогает выразить этот цикл, но не заменяет понимание HTTP, SQL, транзакций, отказов и безопасности.
Последовательность обучения
| Этап | Изучить | Доказательство |
|---|---|---|
| 1. Web fundamentals | HTTP semantics, URL, JSON, cookies, browser/server boundary. | Объяснить запрос и ответ без терминов конкретного фреймворка. |
| 2. API and validation | Маршруты, схемы, ошибки, authn/authz, pagination. | Контрактные тесты для успешных и ошибочных ответов. |
| 3. SQL and persistence | Схема, joins, индексы, транзакции, миграции. | Данные сохраняются, ограничения БД защищают инварианты. |
| 4. Operations | Конфигурация, секреты, логи, health checks, deploy, rollback. | Сервис поднимается из чистой среды и диагностирует отказ. |
Flask, FastAPI и Django
| Инструмент | Сильная сторона | Когда рассматривать |
|---|---|---|
| Flask | Небольшое WSGI-ядро и явная композиция расширений. | Обучение границам web-приложения, небольшой сервис, проект с осознанным выбором компонентов. |
| FastAPI | API, построенный вокруг Python type hints, схем и ASGI. | HTTP API с типизированными моделями и асинхронными интеграциями, если они действительно нужны. |
| Django | Интегрированный набор: ORM, migrations, auth, forms, admin и соглашения проекта. | Приложение, которому полезна согласованная полная платформа. |
Flask из главы 22 остаётся действующим и полезным инструментом. Переходить на FastAPI или Django только потому, что они встречаются в другом roadmap, не нужно. Сравнивайте требования: WSGI или ASGI, состав встроенных компонентов, модель данных, размер команды, эксплуатационная среда и стоимость поддержки.
Проект для портфолио
Соберите сервис задач или бронирований: REST API, PostgreSQL, миграции, роли, валидация, тесты доменной логики и API, structured logging, Docker image и CI. Добавьте описание модели угроз и решения о повторе запросов. Не добавляйте микросервисы, очередь и кэш, пока монолит не показывает измеримую потребность в них.