Python
Продвинутый синтаксис Python
Объектно-ориентированное программирование
Функциональное программирование
Автоматизация
Рефакторинг кода
Работа с библиотеками
Отладка
01
Использовать расширенные возможности Python (лямбда, декораторы, функторы)
02
Писать читаемый и поддерживаемый код
03
Применять ООП для построения архитектуры приложений
04
Работать с виртуальными окружениями и библиотеками
05
Автоматизировать прикладные и ИТ-задачи
06
Анализировать и улучшать существующий код
01
Расширенное программирование на Python
Лямбда-выражения и их особенности
Декораторы и их применение
Функторы и callable-объекты
Аннотации типов и базовая статическая типизация
Практика: применение декораторов и callable-объектов в прикладных задачах
02
Подготовка рабочей среды
Управление зависимостями
Виртуальные окружения
Структура Python-проекта
pyproject.toml как единая точка конфигурации проекта
Инструменты качества кода: ruff, mypy/pyright, pre-commit
Практика: настройка production-окружения
03
Функциональный подход в Python
Время жизни объекта, методы Функциональные приёмы в Python
Время жизни объекта, методы __new__() и __del__()
Доступ к атрибутам и методам объекта
Понятие контекста
Менеджер контекста, пример имплементации
Практика: решение прикладных задач
Контейнеризация и управление ей
Запуск приложений в docker-контейнерах
Упаковка проекта в docker-образ. Docker-compose
Переменные окружения и конфигурация приложения в контейнере
Практика: упаковка Python-проекта в docker-образ
Концепция middleware в веб-архитектуре.
Существующие middleware в составе Django и их устройство.
Эволюция подхода: как работают middleware в современных асинхронных фреймворках (на примере FastAPI/Starlette).
Практика: разработка собственного middleware
06
Документирование кода в Python
Документирование кода: Docstring
Автоматическая генерация документации
Логирование в Django
Structured logging
Correlation ID и трассировка запросов
Практика: добавление документации и логирования в проект
07
Знакомство с PostgreSQL
Работа с SQL напрямую из Django
Django Object Relational Mapping — ORM
Сложные SQL-запросы
Пользовательские менеджеры и методы запросов
Практика: составление сложных SQL-запросов, создание пользовательских менеджеров и методов запросов
Установка pytest
Assert
Тестирование в Django
Fixtures, best practices
Patching и Mocking
Dependency injection
Unit- и integration-тесты
Практика: написание базового теста для функции, запуск тестов и обработка результатов
Индексирование
Проблема N+1: select_related(), prefetch_related()
Транзакции: autocommit, atomic, exceptions, savepoints, rollback
Уровни изоляции PostgreSQL
Блокировки, race conditions и deadlocks
Анализ производительности запросов через EXPLAIN ANALYZE
Практика: создание индексов с помощью Django ORM, анализ и оптимизация запросов
REST API
Django REST API, сериализация
Валидация входных данных
Версионирование API
Единая модель ошибок
OpenAPI-документация
Основы безопасности API: токены, permissions, CORS/CSRF
Практика: проектирование и реализация API endpoint
Назначение, установка и настройка Kafka
Работа с Kafka из Python
Producer и consumer
Повторная обработка сообщений
Retry, idempotency и обработка ошибок
Практика: интеграция Python-приложения с Kafka
Назначение, установка и настройка Redis
Работа с Redis из Python
Redis как cache, pub/sub и хранилище временных данных
Инвалидация кеша
Rate limiting и distributed locks
Практика: работа с библиотекой python-pubsub-postgresql-redis
13
Python и искусственный интеллект
Как ИИ работает с кодом
Prompt engineering для Python
Рефакторинг и оптимизация с ИИ
Генерация документации и тестовых данных
Генерация и проверка unit-тестов
Использование ИИ для code review и анализа legacy-
Практика: улучшение проекта с помощью ИИ
14
Итого на курс 32,5 часа: теория – 24 ч (73%), практика – 8,5 ч (27%)
Шилин Валентин
Эксперт в области разработки ПО и аналитики данных
О тренере
Более 15 лет в IT. Старший программист и аналитик данных в Deutsche Telekom IT GmbH. Специализируется на архитектуре и обработке больших данных. В своей работе использует стек технологий, включающий Scala/Spark, Hadoop Cloudera, а также языки программирования C++, C#, JavaScript, Python и Java.
Профессиональный опыт Валентина включает руководство и участие в проектах различного масштаба: от автоматизации документооборота в скандинавских странах (команда 10-15 человек) и разработки уникального программно-аппаратного комплекса для управления метеорадаром (международный проект, 20 человек) до реализации комплексных решений для немецких компаний, включая Eurofins (команды от 3 до 50 человек).
В настоящее время занимается анализом и прогнозированием потенциальных сбоев в телекоммуникационных сетях Deutsche Telekom путем обработки сверхбольших объемов DSL-метрик.