[kts] Асинхронное программирование на Python для начинающих. Базовый трек (Александр Опрышко)
?
Основные темы, которые вы будете прорабатывать на нашем курсе:
- Как устроено асинхронное программирование в Python (GIL, Threading, кооперативная многозадачность)
- Стандартная python-библиотека asyncio
- Асинхронный веб-фреймворк aiohttp
? Сравним Django и Aiohttp, поймем отличия
? Разберемся, когда следует применять Django, а когда – Aiohttp
? Сравним производительность Django и Aiohttp
? Разберемся, почему Aiohttp нельзя заменить Django 3.0 (c этой версии появилась поддержка асинхронности в Django)
1
Немного теории
? Поймем отличия CPU от IO bound операций
? Разберемся в python threading, поймем их особенность
? Рассмотрим способы реализовать многопоточность в Python (multiprocessing и Кооперативная многозадачность)
? Познакомимся с GIL, поймем зачем его добавили и почему еще не удалили
2
Asyncio
? Рассмотрим компоненты стандартной библиотеки asyncio и поймем как их применять на практике:
? Coroutines
? Tasks
? Synchronization Primitives
? Queues
3
Aiohttp client
? Научимся использовать клиент aiohttp для отправки запросов по протоколам http/https/web sockets/s3 при работе с сервисами:
? VK API (http, long polling). Первые шаги при написании VK бота
? Telegram API (http, long polling). Первые шаги при написании Telegram бота
? Биржевое API (web socket)
? Научимся непрерывно получать данные от сервера, без предварительного запроса
? Файловое API (s3). Научимся эффективно загружать большие файлы
4
Asyncio connectors
? Разберемся, что такое асинхронные коннекторы и как их выбирать
? Научимся работать с различными базами данных асинхронно: Postgres, Mongo, RabbitMQ, Elasticsearch
5
Aiohttp server
? Научимся работать с компонентами aiohttp сервера:
? Handlers, routes и classview
? Middleware и авторизация
? Signals
? Разберемся, как решать типовые задачи, например:
? Двухстороннее передача данных с помощью web socket
? Эффективная загрузка файлов в s3 (stream)
? Создание фоновых задачи
6
Устройство асинхронного программирования
? Разберемся, на чем работает асинхронное программирование в Python
? Поймем, что такое future и event loop, и реализуем свой собственный на генераторах