Съдържание и теми, включени в курса
Ден 1 — Стабилни основи и инструменти на Python
Съвременни функции и типизация на Python
- Основи на типизацията, генерични типове, Protocols и TypeGuard
- Класове от данни, фиксирани класове от данни и общ преглед на attrs
- Съпоставяне на шаблони (PEP 634+) и идиоматична употреба
Качество на кода и инструменти
- Форматери и линтери на код: black, isort, flake8, ruff
- Статична проверка на типове с MyPy и pyright
- Pre-commit куки и работни процеси за разработчици
Управление на проекти и пакетиране
- Управление на зависимости с Poetry и виртуални среди
- Структура на пакет, входни точки и добри практики за версиониране
- Изграждане и публикуване на пакети в PyPI и частни регистри
Ден 2 — Шаблони за проектиране и архитектурни практики
Шаблони за проектиране в Python
- Създаващи шаблони: Factory, Builder, Singleton (Pythonic варианти)
- Структурни шаблони: Adapter, Facade, Decorator, Proxy
- Поведенчески шаблони: Strategy, Observer, Command
Архитектурни принципи
- SOLID принципи, приложени към Python кодови бази
- Шестоъгълна/Чиста архитектура и граници
- Шаблони за инжектиране на зависимости и управление на конфигурацията
Модулност и повторна употреба
- Проектиране на библиотечен срещу приложен код
- API, стабилни интерфейси и семантично версиониране
- Обработка на конфигурация, тайни и настройки за конкретни среди
Ден 3 — Конкурентност, Async IO и производителност
Конкурентност и паралелизъм
- Основи на многопоточността и последици от GIL
- Многопроцесорност и пулове от процеси за CPU-интензивни задачи
- Кога да използваме concurrent.futures срещу multiprocessing
Асинхронно програмиране с asyncio
- Async/await модели, цикъл на събития и прекъсване
- Проектиране на асинхронни библиотеки и оперативна съвместимост със синхронен код
- 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 разработчици
- Софтуерни инженери, отговорни за качеството и архитектурата на 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
Машинен превод