Свържете се с нас
 Продължителност 28 часa

Съдържание и теми, включени в курса

Ден 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)

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

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