Backend Developer Python
Уроки с примерами кода; тему можно сразу закрепить вопросами в тренажёре.
Материалы открываются после регистрации на Free.
Уроки по модулям
Язык Python
9 уроковСемантика языка Python и её следствия для кода: всё — объект и работа со ссылками, изменяемость, имена и замыкания, модель данных и dunder-методы, равенство и хеширование, ленивые итераторы и генераторы, декораторы, менеджеры контекста, модель исключений и dataclass. Не синтаксис, а модель поведения кода.
- Объекты, ссылки и изменяемость
- Имена, области видимости и замыкания
- Модель данных и dunder-методы
- Равенство и хеширование
- Итераторы и генераторы
- Декораторы
- Менеджеры контекста и with
- Исключения: модель, иерархия и EAFP
- dataclass: генерация методов и ловушки
Среда выполнения CPython
4 урокаКак устроен CPython: подсчёт ссылок и сборка мусора, модель памяти, компиляция в байткод и его исполнение, глобальная блокировка интерпретатора как свойство сборки. Что стоит за поведением кода под нагрузкой.
- Байткод и интерпретатор
- Подсчёт ссылок и сборка мусора
- Модель памяти и аллокации
- GIL и свободнопоточная сборка
Асинхронность и конкурентность
8 уроковКонкурентность в Python: цикл событий asyncio, корутины и задачи, отличие ввода-вывода от вычислений, выбор между потоками и процессами. Почему блокирующий вызов останавливает цикл событий.
- Конкурентность и параллелизм
- Блокировка и цикл событий
- Корутины и await
- Задачи и одновременность
- Отмена и таймауты
- Потоки для ввода-вывода и блокирующего кода
- Процессы для вычислений
- Синхронизация общего состояния
Типизация
5 уроковАннотации типов и постепенная типизация: как типы делают контракты кода явными, статическая проверка и её место в веб-фреймворках. Типы как инструмент, а не декорация.
- Аннотации ничего не проверяют
- Постепенная типизация и статическая проверка
- Словарь аннотаций
- Дженерики и протоколы
- Типы в рантайме: валидация
FastAPI
8 уроковFastAPI: асинхронный веб-фреймворк на аннотациях типов поверх ASGI. Маршрутизация, внедрение зависимостей, валидация и сериализация через модели, автогенерация схемы OpenAPI.
- ASGI и асинхронный веб
- Маршрутизация и параметры
- Модели запроса и валидация
- Модели ответа и сериализация
- Внедрение зависимостей
- async и блокировка в FastAPI
- Обработка ошибок
- Генерация схемы OpenAPI
Django
9 уроковDjango: полнофункциональный веб-фреймворк со встроенными ORM, миграциями, админкой и формами. Готовая структура приложения для сервисов с богатой доменной моделью.
- Цикл запрос–ответ в Django
- Проект, приложения и настройки
- Модели и ORM
- Миграции
- Представления и маршрутизация
- Формы и валидация
- Аутентификация, сессии и middleware
- Django REST framework
- async в Django
Flask
6 уроковFlask: минималистичный веб-фреймворк, дающий маршрутизацию и запрос-ответ, а остальное — из расширений. Осознанный контроль над зависимостями для небольших сервисов.
- Философия микрофреймворка и маршрутизация
- Запрос и ответ
- Контексты приложения и запроса
- Blueprints
- Расширения и экосистема
- Фабрика приложения и конфигурация
Проектирование API
6 уроковПроектирование HTTP-API: методы и коды состояния, идемпотентность, версионирование и пагинация, единый формат ошибок и валидация входных данных. Контракт как обещание сервиса клиентам.
- Ресурсы и методы
- Коды состояния и формат ошибок
- Идемпотентность и ретраи
- Версионирование и эволюция контракта
- Пагинация, фильтрация, сортировка
- Контракты, валидация и OpenAPI
ORM и миграции
10 уроковРабота с данными через ORM в Python: сессии и транзакции, ленивая и жадная загрузка, миграции схемы. Какой SQL порождает запрос ORM и как не поймать проблему N+1.
- Что такое ORM
- Движок, соединения и Core
- Декларативные модели и отображение
- Сессия: Unit of Work и Identity Map
- Транзакции и область сессии
- Запросы и порождаемый SQL
- Отношения и стратегии загрузки
- Проблема N+1
- Миграции с Alembic
- Асинхронный ORM
Тестирование
6 уроковТестирование Python-сервиса: юнит-, интеграционные и end-to-end тесты, фикстуры и изоляция зависимостей, проверка HTTP-эндпоинтов. Тесты фиксируют поведение и защищают от регрессий.
- Зачем тестировать и пирамида тестов
- Основы pytest
- Фикстуры и изоляция
- Тест-дублёры и моки
- Тестирование HTTP и базы данных
- Тестирование асинхронного кода
Упаковка и окружение
6 уроковУпаковка и окружение Python-проекта: виртуальные окружения, управление зависимостями и файл проекта. Воспроизводимое окружение делает сборку и деплой предсказуемыми.
- Зачем упаковка и окружения
- Виртуальные окружения
- Зависимости и pyproject.toml
- Фиксация версий и воспроизводимость
- Современный инструментарий: uv
- Сборка и публикация
Наблюдаемость
5 уроковНаблюдаемость Python-сервиса: логи, метрики и трассировки как три канала, структурное логирование и health-проверки. Без них поведение сервиса под нагрузкой остаётся непрозрачным.
- Зачем наблюдаемость и три канала
- Структурное логирование
- Метрики
- Трассировка и корреляция
- OpenTelemetry и health-проверки
Очереди задач
5 уроковФоновые задачи и очереди: вынос долгой работы из обработчика запроса через брокер сообщений, повторные попытки и идемпотентность. Очередь развязывает сервисы во времени и сглаживает нагрузку.
- Зачем фоновые задачи и очереди
- Брокеры и воркеры
- Задачи Celery и маршрутизация
- Повторы и идемпотентность
- Периодические задачи и обработка сбоев
Контейнеры и CI/CD
5 уроковКонтейнеры и CI/CD для Python-сервиса: упаковка в образ, переменные окружения, конвейер сборки и деплоя. Воспроизводимая сборка делает деплой предсказуемым.
- Зачем контейнеры
- Dockerfile для Python-сервиса
- Оптимизация образа и многоступенчатая сборка
- Конфигурация и окружение
- Конвейер CI/CD
О курсе
Глубокое понимание Python и его среды выполнения для backend-разработки. Курс разбирает не синтаксис, а семантику языка и поведение CPython: объектную модель и работу со ссылками, модель данных и протоколы, конкурентность на asyncio и следствия глобальной блокировки интерпретатора, прикладной веб-слой (FastAPI, Django, Flask), работу с данными через ORM и продакшн-инженерию. Цель — научиться видеть стоимость абстракций и поведение кода под нагрузкой, а не просто заставлять его работать.