Съдържание и теми, включени в курса
Ден 1 — Стабилни основи на Python и инструменти
Съвременни възможности на Python и типизация
- Основи на типизацията, generics, Protocols и TypeGuard
- Dataclasses, frozen dataclasses и преглед на attrs
- Съпоставяне на шаблони (PEP 634+) и идиоматична употреба
Качество на кода и инструменти
- Форматери и линтери за код: black, isort, flake8, ruff
- Статична проверка на типове с MyPy и pyright
- Pre-commit куки и работни процеси за разработчици
Управление на проекти и пакетиране
- Управление на зависимости с Poetry и виртуални среди
- Структура на пакети, входни точки и добри практики за версиониране
- Изграждане и публикуване на пакети в PyPI и частни регистри
Ден 2 — Шаблони за проектиране и архитектурни практики
Шаблони за проектиране в Python
- Създаващи шаблони: Factory, Builder, Singleton (питонични варианти)
- Структурни шаблони: Adapter, Facade, Decorator, Proxy
- Поведенчески шаблони: Strategy, Observer, Command
Архитектурни принципи
- Прилагане на SOLID принципите върху Python кодови бази
- Хексагонална/чиста архитектура и граници
- Шаблони за инжектиране на зависимости и управление на конфигурацията
Модулност и повторно използване
- Проектиране на библиотечен код спрямо приложен код
- API, стабилни интерфейси и семантично версиониране
- Управление на конфигурация, тайни и настройки, специфични за средата
Ден 3 — Паралелност, асинхронен IO и производителност
Паралелност и успоредност
- Основи на нишките и последици от GIL
- Multiprocessing и пулове от процеси за задачи, обвързани с процесора
- Кога да използвате concurrent.futures спрямо multiprocessing
Асинхронно програмиране с asyncio
- Шаблони async/await, цикъл на събитията и отмяна
- Проектиране на асинхронни библиотеки и оперативна съвместимост със синхронен код
- Шаблони, обвързани с IO, обратно налягане и ограничаване на скоростта
Профилиране и оптимизация
- Инструменти за профилиране: cProfile, pyinstrument, perf, memory_profiler
- Оптимизиране на критични пътища и използване на C-разширения/Numba, където е подходящо
- Измерване на латентност, пропускателна способност и използване на ресурси
Ден 4 — Тестване, CI/CD, наблюдаемост и внедряване
Стратегии за тестване и автоматизация
- Модулно тестване и fixtures с pytest; организация на тестовете
- Тестване на базата на свойства с Hypothesis и договорно тестване
- Мокване, monkeypatching и тестване на асинхронен код
CI/CD, издаване и наблюдение
- Интегриране на тестове и качествени прегради в GitHub Actions/GitLab CI
- Изграждане на възпроизводими контейнери с Docker и многоетапни builds
- Наблюдаемост на приложения: структурирано логване, Prometheus метрики и проследяване
Сигурност, укрепване и добри практики
- Одит на зависимости, основи на SBOM и сканиране за уязвимости
- Практики за сигурно програмиране за валидиране на входни данни и управление на тайни
- Укрепване по време на изпълнение: ограничения на ресурсите, потребителски права и сигурност на контейнери
Завършващ проект и преглед
- Екипна лабораторна работа: проектиране и внедряване на малка услуга с помощта на шаблони от курса
- Тестване, проверка на типове, пакетиране и CI конвейер за проекта
- Финален преглед, критичен анализ на кода и план за практически подобрения
Обобщение и следващи стъпки
Изисквания
- Силни умения за програмиране на Python на средно ниво
- Запознатост с обектно-ориентираното програмиране и основно тестване
- Опит с командния ред и Git
Аудитория
- Старши Python разработчици
- Софтуерни инженери, отговорни за качеството и архитектурата на Python кода
- Технически ръководители и MLOps/DevOps инженери, които работят с Python кодови бази
Отзиви от участници (2)
всичко беше съвършено
Florin Vrincianu
Курс - Python Programming Fundamentals
Машинен превод
Практическите упражнения, свързани с материалът, наистина помагат за по-добро разбиране на всеки тема. Освен това, начинът да започнете урока с лекция и продължите с практически упражнения е добър и полезен, за да свържете материалът, който беше представен по-рано.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Курс - Introduction to Data Science and AI using Python
Машинен превод