План на курса

Ден 1 — Робустни основи на Python и инструментарии

Съвременни особености на Python и типизация

  • Основи на типизацията, generics, Protocols и TypeGuard
  • Dataclasses, замразени dataclasses и преглед на attrs
  • Pattern matching (PEP 634+) и използване в Python

Качество на кода и инструментарии

  • Форматирирачи и линтери: black, isort, flake8, ruff
  • Проверка на типовете с MyPy и pyright
  • Pre-commit hooks и работни процеси за разработчици

Менажмънт на проекти и пакетиране

  • Управление на зависимости с Poetry и виртуални среди
  • Структура на пакетите, точки входа и най-добри практики за версиониране
  • Създаване и публикуване на пакети в PyPI и частни регистри

Ден 2 — Шаблони на проектиране и архитектурни практики

Шаблони на проектиране в Python

  • Създаващи шаблони: Factory, Builder, Singleton (Python варианти)
  • Структурни шаблони: Adapter, Facade, Decorator, Proxy
  • Поведенчески шаблони: Strategy, Observer, Command

Архитектурни принципи

  • SOLID принципи приложени към кодовете с Python
  • Hexagonal/Clean Architecture и границите между компоненти
  • Шаблони на dependency injection и управление на конфигурацията

Модуларност и повторно използване

  • Проектиране на библиотека спрямо приложение
  • APIs, стабилни интерфейси и семантично версиониране
  • Управление на конфигурацията, секретите и средната за конкретна среда налива

Ден 3 — Конкуренция, асинхронен IO и производителност

Конкуренция и паралелизъм

  • Основи на потоци (threads) и последствията от GIL
  • Multiprocessing и процессни пули за CPU-ограничени задачи
  • Кога да се използва concurrent.futures в сравнение с multiprocessing

Асинхронно програмиране с asyncio

  • Модели на async/await, event loop и спирање (cancellation)
  • Проектиране на асинхронни библиотеки и взаимосъвместимост с синхронен код
  • IO-ограничени модели, обратно натискане (backpressure) и ограничаване на скоростта (rate limiting)

Профилиране и оптимизация

  • Инструменти за профилиране: cProfile, pyinstrument, perf, memory_profiler
  • Оптимизиране на горещите участъци (hot paths) и използване на C-расширения/Numba когато е уместно
  • Мерки за задължителност, пропускнала и използване на ресурси

Ден 4 — Тестване, CI/CD, наблюдаемост и разполагане

Стратегии за тестване и автоматизация

  • Юнит тестване и фиксации с pytest; организация на тестовете
  • Property-based тестване с Hypothesis и контрактно тестване
  • Макарни (mocking), монкейпатчинг (monkeypatching) и тестване на асинхронен код

CI/CD, пускане и мониторинг

  • Интегриране на тестовете и врата за качество (quality gates) в GitHub Actions/GitLab CI
  • Създаване на воспроизводими контейнери с Docker и многоетапни създания (multi-stage builds)
  • Наблюдаемост на приложенията: структурирано логиране, метрики за Prometheus и трасиране

Сигурност, укрепване и най-добри практики

  • Аудит на зависимости, основи на SBOM (Software Bill of Materials) и сканиране за уязвимости
  • Практики за сигурно кодиране за валидация на входни данни и управление на секретите
  • Укрепване при изпълнение: ограничения на ресурси, права на потребители и сигурност на контейнерите

Минипроект за завършване и преглед

  • Лабораторна работа в екип: проектиране и имплементация на малко обслужване с помощта на шаблоните от курса
  • Тестване, проверка на типовете, пакетиране и CI пайлири за проекта
  • Крайна преглед, критика на кода и план за подобрения с конкретни действия

Резюме и следващи стъпки

Изисквания

  • Средно-напреднал опит в програмирането на Python
  • Запознаност с обектно-ориентираният подход и основното тестване
  • Опит с използването на командния ред и Git

Целева аудитория

  • Напреднали програмисти на Python
  • Софтуерни инженери, отговорни за качеството и архитектурата на кода с Python
  • Технически водачи и MLOps/DevOps инженери, които работят с кодове на Python
 28 часа

Брой участници


Цена за участник

Отзиви от потребители (5)

Предстоящи Курсове

Свързани Kатегории