Чему вы научитесь Научитесь писать высокопроизводительный асинхронный код на Python для создания масштабируемых приложений. Освоите библиотеку asyncio через практические примеры работы с корутинами, задачами и футурами по актуальной документации. Поймете внутреннее устройство asyncio через детальный разбор исходного кода ключевых компонентов: цикла событий, механизмов планирования и управления корутинами. Это знание поможет вам не просто использовать, а глубоко понимать асинхронность в Python и отлаживать сложные сценарии. Изучите фундаментальные механизмы асинхронности на уровне операционной системы, что позволит легко осваивать аналогичные технологии в других языках программирования. Узнаете историческую эволюцию асинхронного программирования — от колбэков и генераторов до современных синтаксических конструкций async/await. Разберетесь в низкоуровневых возможностях операционных систем для управления операциями ввода-вывода и научитесь использовать модули select и selectors. Создадите управляемые генераторы и сопрограммы на их основе для решения практических задач. Реализуете собственные аналоги цикла событий и асинхронные классы для глубокого понимания принципов работы. Закрепите теорию многочисленными практическими задачами по созданию асинхронных программ. Освоите работу с PostgreSQL в асинхронном режиме через библиотеку asyncpg: от базовых запросов до использования пулов соединений для эффективного взаимодействия с базой данных в высоконагруженных приложениях. О курсе Курс является завершающей частью большой темы реализации многозадачных решений в Python и полностью раскрывает асинхронную многозадачность. Курс для тех, кто хочет не просто «пользоваться», а «понимать»! Этот курс не только обучает использованию библиотеки asyncio, но и показывает концепции, на которых строится асинхронное программирование. Асинхронные программы создавались и до выхода библиотеки asyncio. Этот курс позволит Вам глубже понять асинхронное программирование и не ограничивается рамками одной готовой библиотеки. На курсе Вас ждут: теоретические и практические основы концепции асинхронного программирования. подробный разбор официальной документации и большое количество примеров использования; разбор исходного кода внутренней реализации модуля asyncio. Важно не только уметь применять инструменты, но и знать как они устроены. Учитесь у лучших! разбираясь в исходном коде модуля, который был написан и улучшен опытными разработчиками и огромным комьюнити языка Python. ссылки на дополнительные материалы различных источников на русском и английском языках; итоговый учебный проект, позволяющий применить новые полученные знания в задаче по агрегации рыночных данных ценных бумаг, используя реальные API финансовых сервисов. Программа курса Введение Приветствие! О курсе и особенностях тестирующей системы Основы асинхронного программирования Основные определения Виды операций и область применения Переключение потока выполнения Генераторы и корутины ч.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