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

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

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

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

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