Программирование на языке Python. Уровень 2. Продвинутый курс
Основные вопросы, рассматриваемые в курсе: стандартный загрузчик модулей. Объектно - ориентированный (OOP) и Аспектно - ориентированный (AOP) Python и виртуальная Python машина, распределение классов и объектов в куче, многопоточность, процессы в Python и взаимодействие между ними, типичные библиотеки многозадачности в Python на примере flask и waitress. Асинхронные механизмы в Python - работа с http, ftp, MQ серверами, взаимодействие с базой данных
от 22 800₽
Для физ. лиц - 32 500₽
Для организаций - 38 000₽
Ближайшая группа
22.06.2026-26.06.2026
Формат
Гибридный
Длительность
40 часов
Часы занятий
10:00–17:00
Целевая аудитория
Cлушатели, которые работают с Python, а теперь расширяют свои знания и будут создавать профессиональные сервера для приложений масштаба предприятия
Получаемые знания и навыки
- глубокое понимание внутренней архитектуры Python: слушатели освоят работу интерпретатора, загрузчика модулей, особенности виртуальной машины Python, управление памятью, различия между встроенными и исходными модулями, а также научатся использовать «магические» методы и свойства для анализа объектов
- профессиональное объектно- и аспектно-ориентированное программирование: вы получите навыки проектирования и реализации сложных объектных моделей: работа с классами, объектами, инкапсуляцией, полиморфизмом, абстракциями (ABC), декораторами классов и методов, а также научитесь применять dataclass и строить расширяемую архитектуру приложений
- многопоточное и многопроцессное программирование: освоите создание и управление потоками и процессами, работу с пулами, синхронизацию (блокировки, очереди), организацию обмена данными между потоками и процессами, а также научитесь учитывать особенности GIL и масштабировать приложения
- асинхронное программирование и разработка серверных приложений: научитесь использовать асинхронные механизмы Python (asyncio, корутины, цикл событий), строить микросервисы на Flask и waitress, организовывать асинхронный доступ к базам данных и внешним сервисам, а также тестировать нагрузку и управлять жизненным циклом серверных приложений
от 22 800₽
Для физ. лиц - 32 500₽
Для организаций - 38 000₽
Программа курса
- Стандартный загрузчик модулей и объектов
- Ссылки из кучи на исходные тексты модулей, динамическая компиляция и интерпретация кода Python приложения
- Различие между builtin модулями и модулями исходных кодов
- Загрузка типа и создание переменной, распределение памяти и доступ к описанию переменной
- Использование «магических» свойств и методов для получения информации по объекту в куче виртуальной машины
- Класс object и type — родоначальники в Python. Два способа создания класса
- Загрузка класса в кучу, получение ссылки на исходный код
- Распределение памяти под хранение объекта в куче, заполнение объекта данными
- Статические и динамические методы объекта
- Определение свойств класса, инкапсуляция свойств, динамический доступ к свойствам объектов
- Практическое использование dataclass декоратора, определение Пост-конструктора, переопределение стандартных методов класса для отображения объекта, хеширования, сортировки
- Таблица динамических методов и полиморфизм в Python
- Абстракции, ABC класс базовой библиотеки
- Практическое применение абстракции
- Классы — декораторы
- Определение потока
- Обычные и демон потоки
- Несколько способов создания потока
- Блокировки и взаимные блокировки потоков, синхронизация. Различные состояния потоков
- GIL (Global Interpreter Lock) механизм для реализации потокобезопасности в Python
- Пул потоков. Извлечение результата выполнения потока, синхронизация потоков в пуле
- Очередь для организации обмена данными между несколькими потоками
- Практический пример реализации обмена данными между различными базами данных или микросервисами с использованием пула потоков
- Особенность ведения журнала логов при работе нескольких процессов
- Организация пула процессов
- Распределение процессов по физическим процессорам хоста
- Механизм Fork-Join при работе с процессами
- Pipe и Queue для обмена данными между процессами
- Определение корутины, цикл задач, планирование событий
- Запуск корутины в цикле. Ожидание
- Управление порядком выполнения корутин
- Сравнение выполнения нескольких задач в потоках, процессах и асинхронно
- Библиотека flask и waitress для организации сервера микросервисов
- Автоматический запуск и перезапуск сервера на linux платформе
- Цикл событий и отработка запроса, получение заголовка запроса, формирование ответа
- Тестирование нагрузки на сервер, построение клиентского приложения. Отслеживание процессов и потоков flask сервера
- Организация асинхронного доступа в базу данных или другой внешний сервер из потока выполнения микросервиса
Стоимость и условия оплаты
от 22 800₽
Для физ. лиц - 32 500₽
Для организаций - 38 000₽