- Регистрация
- 24.09.2021
- Сообщения
- 38 365
Асинхронное программирование позволяет выдерживать большие нагрузки и писать более эффективный код. Большинство крупных проектов использует этот подход. Поэтому python-разработчикам важно знать основные принципы асинхронности, понимать отличия многопоточности от кооперативной многозадачности, и уметь все это применять на практике. Основные темы, которые вы будете прорабатывать на нашем курсе: Как устроено асинхронное программирование в Python (GIL, Threading, кооперативная многозадачность) Стандартная python-библиотека asyncio Асинхронный веб-фреймворк aiohttp Программа курса Django vs 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, и реализуем свой собственный на генераторах |