Чему вы научитесь
- Проектировать контракт REST API до написания кода: ресурсы, форматы, ошибки, правила совместимости
- Собирать Flask-приложение фабрикой с конфигурацией по окружениям и разделением на слои
- Описывать валидацию входа и формирование ответа схемами Pydantic 2
- Работать с PostgreSQL через SQLAlchemy 2.0: модели, ограничения, индексы, транзакции
- Писать миграции, применимые к непустой базе без длительных блокировок
- Выносить бизнес-логику в сервисный слой и доступ к данным в репозитории
- Реализовывать аутентификацию по токенам, роли, права и доступ к конкретному объекту
- Обеспечивать идемпотентность операций и корректное поведение при конкурентном доступе
- Разделять доменные и инфраструктурные ошибки и приводить все ответы к единому формату
- Выносить отложенную работу в очередь задач и писать задачи, безопасные при повторе
- Кешировать данные с осознанными ключами, сроками жизни и сбросом
- Настраивать таймауты, повторы и размыкатель для обращений к внешним сервисам
- Писать тесты четырёх уровней: правила домена, сценарии, HTTP, сквозные
- Порождать документацию OpenAPI из кода и проверять совместимость API автоматически
- Собирать компактный Docker-образ, настраивать Gunicorn и разворачивать сервис на VPS
- Планировать релизы так, чтобы откат кода был безопасным
О курсе
Для кого этот курс
Начальные требования
Знание основ программирования: переменные, функции, условия, циклы, работа с исключениями. Опыт на любом языке подойдёт — материал по Python дан в объёме, нужном для backend.
Базовое представление о HTTP: что такое запрос, ответ, метод и код состояния.
Знакомство с SQL на уровне select, insert, join. Проектирование схемы разбирается в курсе.
Умение работать в терминале: запуск команд, переменные окружения.
Из программного обеспечения: Python 3.13 или новее (курс написан под 3.15, всё существенное работает и на предыдущих версиях), Docker и Docker Compose для PostgreSQL и Redis, любой редактор кода, git.
Оборудование: любая машина, на которой запускается Docker. Отдельный сервер не нужен: развёртывание разбирается на примере, а проверить его можно на локальном стенде.
Преподаватели курса
Формат курса
Курс состоит из 20 глав и 127 текстовых уроков. Видео нет: материал текстовый, с кодом, который можно копировать, и схемами там, где они помогают.
Каждый урок — это разбор одной темы на 10–13 тысяч символов: инженерная ситуация, объяснение, код проекта, типичные ошибки, практическое задание и вопросы для самопроверки. Уроки читаются последовательно: проект развивается от главы к главе.
В конце каждой главы с третьей по семнадцатую — 7 задач с выбором одного ответа. Задачи проверяют понимание, а не запоминание формулировок: в каждой описана конкретная ситуация, а после ответа даётся разбор того, почему остальные варианты неверны.
Практика выполняется самостоятельно: в уроках приведены задания, которые собираются в проект Depot. Автоматической проверки кода нет — проверяемым результатом является работающий проект и проходящие тесты, которые вы напишете сами по описанным критериям.
Дедлайнов нет, доступ к материалам бессрочный. Проходить можно в своём темпе, возвращаясь к главам по мере надобности: уроки написаны так, чтобы служить справочником и после первого прочтения.
Вопросы по материалу можно задавать в комментариях к урокам.
Сколько это занимает
Ориентир — 6–8 часов в неделю: около 5 часов на чтение уроков и решение задач, остальное на самостоятельную работу над проектом. Полное прохождение с написанием проекта занимает 10–14 недель. Если читать только материал, без сборки проекта, — примерно вдвое быстрее.
Что вы получите
- 127 текстовых уроков
- 105 задач с выбором ответа и разбором каждого варианта
- Сквозной проект Depot: API сети пунктов проката, который собирается по ходу курса
- Практическое задание и вопросы для самопроверки в каждом уроке
- Готовые к использованию решения: единый формат ошибок, фабрика приложения, единица работы, обвязка фоновых задач, проверки границ слоёв
- Проверочные списки: перед выкладкой, при проектировании эндпоинта, при написании задачи, при разборе инцидента
- Набор скриптов проекта: развёртывание, откат, резервное копирование, проверка архитектуры
- Инструкция по эксплуатации: что делать, когда сервис не отвечает, растёт доля ошибок или очередь задач