Курс является завершающей частью большой темы реализации многозадачных решений в Python и полностью раскрывает асинхронную многозадачность.
Курс для тех, кто хочет не просто «пользоваться», а «понимать»! Этот курс не только обучает использованию библиотеки asyncio, но и показывает концепции, на которых строится асинхронное программирование. Асинхронные программы создавались и до выхода библиотеки asyncio. Этот курс позволит Вам глубже понять асинхронное программирование и не ограничивается рамками одной готовой библиотеки.
На курсе Вас ждут:
- теоретические и практические основы концепции асинхронного программирования.
- подробный разбор официальной документации и большое количество примеров использования;
- разбор исходного кода внутренней реализации модуля asyncio. Важно не только уметь применять инструменты, но и знать как они устроены. Учитесь у лучших! разбираясь в исходном коде модуля, который был написан и улучшен опытными разработчиками и огромным комьюнити языка Python.
- ссылки на дополнительные материалы различных источников на русском и английском языках;
- итоговый учебный проект, позволяющий применить новые полученные знания в задаче по агрегации рыночных данных ценных бумаг, используя реальные API финансовых сервисов.
Чему вы научитесь:
- Научитесь писать высокопроизводительный асинхронный код на Python для создания масштабируемых приложений.
- Освоите библиотеку asyncio через практические примеры работы с корутинами, задачами и футурами по актуальной документации.
- Поймете внутреннее устройство asyncio через детальный разбор исходного кода ключевых компонентов: цикла событий, механизмов планирования и управления корутинами. Это знание поможет вам не просто использовать, а глубоко понимать асинхронность в Python и отлаживать сложные сценарии.
- Изучите фундаментальные механизмы асинхронности на уровне операционной системы, что позволит легко осваивать аналогичные технологии в других языках программирования.
- Узнаете историческую эволюцию асинхронного программирования — от колбэков и генераторов до современных синтаксических конструкций async/await.
- Разберетесь в низкоуровневых возможностях операционных систем для управления операциями ввода-вывода и научитесь использовать модули select и selectors.
- Создадите управляемые генераторы и сопрограммы на их основе для решения практических задач.
- Реализуете собственные аналоги цикла событий и асинхронные классы для глубокого понимания принципов работы.
- Закрепите теорию многочисленными практическими задачами по созданию асинхронных программ.
- Освоите работу с PostgreSQL в асинхронном режиме через библиотеку asyncpg: от базовых запросов до использования пулов соединений для эффективного взаимодействия с базой данных в высоконагруженных приложениях.
Программа курса
- Введение
- Приветствие!
- О курсе и особенностях тестирующей системы
- Основы асинхронного программирования
- Основные определения
- Виды операций и область применения
- Переключение потока выполнения
- Генераторы и корутины ч.1
- Генераторы и корутины ч.2
- Файлы, сокеты и блокирующие операции ввода-вывода
- Операционные системы и контроль IO-bound задач, ч.1
- Операционные системы и контроль IO-bound задач, ч.2
- Асинхронное программирование на коллбэках
- Асинхронное программирование на генераторах
- Эпилог
- Библиотека asyncio
- Детали пазла
- Awaitables объекты, ч.1
- Awaitables объекты, ч.2
- Runners и локальный контекст значений. Сontextvars, ч.1
- Runners и локальный контекст значений. Сontextvars, ч.2
- Задачи Tasks. Работа с коллбэками
- Задачи Tasks. gather и TaskGroup
- Нетерпеливый старт задач eager_start и uvloop
- Задачи Tasks. Исключения
- Задачи Tasks. Исключения gather и TaskGroup
- Задачи Tasks. Примитивы ожидания
- Задачи Tasks. Таймауты/таймеры
- Работа с сетевыми соединениями. Streams
- Запуск блокирующих операций с использованием потоков
- Запуск блокирующих операций с использованием пула процессов
- Запуск блокирующих операций с помощью пула интерпретаторов
- Асинхронный менеджер контекста
- Асинхронный итератор
- Асинхронные очереди
- Асинхронные примитивы синхронизации. Lock
- Асинхронные примитивы синхронизации. Event и Condition
- Асинхронные примитивы синхронизации. Semaphore и Barrier
- Асинхронная работа с субпроцессами
- Разбор тестовых задач и примеры решений
- Эпилог
- Низкоуровневая работа с asyncio
- Back to the Future
- Работа с циклом событий. Планирование обратных вызовов
- Реализации событийных циклов. Очередь коллбэков
- Реализации событийных циклов. Мониторинг I/O-операций
- Асинхронная работа с БД на примере PostgreSQL и asyncpg
- Введение. Архитектура СУБД
- Установка и настройка
- Подключение и работа с запросами
- Пул соединений. Connection Pool
- Последний подвиг
- Учебный проект: агрегация рыночных данных III






