Язык Python - продвинутый
02-PYTHON
Содержание курса
Модуль 1. Python - интерпретатор.
- Стандартный загрузчик модулей и объектов.
- Ссылки из кучи на исходные тексты модулей, динамическая компиляция и интерпретация кода Python приложения.
- Различие между builtin модулями и модулями исходных кодов.
Модуль 2. Cкалярные типы данных и их поведение в оперативной памяти виртуальной машины.
- Загрузка типа и создание переменной, распределение памяти и доступ к описанию переменной.
- Использование «магических» свойств и методов для получения информации по объекту в куче виртуальной машины.
Модуль 3. Объекты, Классы - четыре постулата OOP.
- Класс object и type - родоначальники в Python. Два способа создания класса.
- Загрузка класса в кучу, получение ссылки на исходный код.
- Распределение памяти под хранение объекта в куче , заполнение объекта данными.
- Статические и динамические методы оъекта.
- Определение свойств класса, инкапсуляция свойств, динамический доступ к свойствам объектов.
- Практическое использование dataclass декоратора, определение Пост-конструктора, переопределение стандартных методов класса для отображения объекта, хеширования, сортировки.
- Таблица динамических методов и полиморфизм в Python.
- Абстракции, ABC класс базовой библиотеки.
- Практическое применение абстракции.
- Классы - декораторы.
Модуль 4. Многопоточное программирование в Python.
- Определение потока.
- Обычные и демон потоки.
- Несколько способов создания потока.
- Блокировки и взаимные блокировки потоков, синхронизация. Различные состояния потоков.
- GIL (Global Interpreter Lock) механизм для реализации потокобезопасности в Python.
- Пул потоков. Извлечение результата выполнения потока, синхронизация потоков в пуле.
- Очередь для организации обмена данными между несколькими потоками.
Модуль 5. Процессы в Python.
- Особенность ведения журнала логов при работе нескольких процессов.
- Организация пула процессов.
- Распределение процессов по физическим процессорам хоста.
- Механизм Fork-Join при работе с процессами.
- Pipe и Queue для обмена данными между процессами.
Модуль 6. Асинхронные механизмы в Python.
- Определение корутины, цикл задач, планирование событий .
- Запуск корутины в цикле. Ожидание.
- Управление порядком выполнения корутин.
- Сравнение выполнения нескольких задач в потоках, процессах и асинхронно.
Модуль 7. Практическое использование процессов и асинхронных корутин для построения микросервиса.
- Библиотека flask и waitress для организации сервера микросервисов.
- Автоматический запуск и перезапуск сервера на linux платформе.
- Цикл событий и отработка запроса, получение заголовка запроса, формирование ответа.
- Тестирование нагрузки на сервер, построение клиентского приложения. Отслеживание процессов и потоков flask сервера.
- Организация асинхронного доступа в базу данных или другой внешний сервер из потока выполнения микросервиса.
Слушатели
Курс предназначен для слушателей, которые работают с Python, а теперь расширяют свои знания и будут создавать профессиональные сервера для приложений масштаба предприятия.
Продолжительность: 5 дн.
Цена: 35000 р.
