Съдържание и теми, включени в курса
Ден 1 — Устойчиви основи на Python и инструменти
Съвременни функционалности в Python и типизация
- Основни аспекти на типизацията, генерични типове, Protocols и TypeGuard
- Dataclasses, замръзнали 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 и производителност
Конкурентност и паралелизъм
- Основи на нишките (threading) и импликации на GIL
- Multiprocessing и пулове от процеси за CPU-зависими задачи
- Кога да се използва concurrent.futures спрямо multiprocessing
Асинхронно програмиране с asyncio
- Шаблони Async/await, събитиево въображение (event loop) и отменяне
- Проектиране на асинхронни библиотеки и взаимодействие с синхронен код
- IO-зависими шаблони, обратно налягане и ограничаване на скоростта
Профилиране и оптимизация
- Инструменти за профилиране: cProfile, pyinstrument, perf, memory_profiler
- Оптимизация на горещи пътища и използване на C-разширения/Numba там, където е уместно
- Мерене на закъснение, пропускателна способност и използване на ресурси
Ден 4 — Тестване, CI/CD, наблюдаемост и внедряване
Стратегии за тестване и автоматизация
- Юнит тестване и фикстури с pytest; организация на тестове
- Тестване на базата на свойства с Hypothesis и тестване на договори
- Моксиране, monkeypatching и тестване на асинхронен код
CI/CD, релизи и мониторинг
- Интегриране на тестове и качества на врати в GitHub Actions/GitLab CI
- Създаване на възпроизводим контейнери с Docker и многоетапни изградения
- Наблюдаемост на приложения: структурирано логоване, метрики на Prometheus и проследяване
Сигурност, укрепване и най-добри практики
- Аудит на зависимости, основни аспекти на SBOM и сканиране за уязвимости
- Сигурни практики за кодиране за валидация на вход и управление на тайни
- Укрепване на време за изпълнение: граници на ресурсите, права на потребителя и сигурност на контейнерите
Финален проект и преглед
- Лаборатория на отбор: проектиране и реализиране на малка услуга, използвайки шаблони от курса
- Тестване, проверка на типове, пакиране и CI пайплайн за проекта
- Финален преглед, критика на кода и план за приложими подобрения
Резюме и следващи стъпки
Изисквания
- Силно междинно ниво на опит в програмирането на Python
- Знаемост с объектно-ориентирано програмиране и базово тестване
- Опит в ползването на командния ред и Git
Аудитория
- Разработчици на Python с висш ниво (Senior)
- Софтуерни инженери, отговорни за качеството и архитектурата на кода на 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
Машинен превод