Содержание курса
Модуль 1. Python - интерпретатор
• Стандартный загрузчик модулей и объектов.
• Ссылки из кучи на исходные тексты модулей, динамическая компиляция и интерпретация кода Python приложения.
• Различие между builtin модулями и модулями исходных кодов.
Модуль 2. Скалярные типы и объектные типы данных и их поведение в оперативной памяти виртуальной машины.
• Загрузка типа и создание переменной, распределение памяти и доступ к описанию переменной.
• Использование «магических» свойств и методов для получения информации по объекту в куче виртуальной машины.
Модуль 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 сервера.
• Организация асинхронного доступа в базу данных или другой внешний сервер из потока выполнения микросервиса.
Модуль 8. Искусственный Интеллект (ИИ, AI) в корпоративных системах (используется как помощник в создании кода)
• Построение AI микросервисов
• Разработка REST API для моделей машинного обучения
• Асинхронный доступ к ML моделям
• Интеграция Python сервера с LLM и AI API
• Организация масштабируемых AI сервисов в корпоративной среде