Návrh Školení

Den 1 — Robustní základy a nástroje pro Python

Současné funkce Pythonu a typování

  • Základy typování, generiky, Protokoly a TypeGuard
  • Dataclasses, zamrznuté dataclasses a přehled o attrs
  • Pattern matching (PEP 634+) a idiomické použití

Kvalita kódu a nástroje

  • Nástroje pro formátování a analýzu kódu: black, isort, flake8, ruff
  • Statické kontrolní typy s MyPy a pyright
  • Pre-commit hooks a pracovní postupy vývojářů

Správa projektu a balení

  • Správa závislostí s Poetry a virtuálními prostředími
  • Struktura balíčků, vstupní body a osvědčené postupy verze
  • Sestavování a publikování balíčků do PyPI a privátních registřů

Den 2 — Design Patterns & Architektonické Postupy

Design patterns v Pythonu

  • Vytvářecí vzory: Factory, Builder, Singleton (Pythonovské varianty)
  • Strukturální vzory: Adapter, Facade, Decorator, Proxy
  • Chováníové vzory: Strategy, Observer, Command

Architektonické principy

  • SOLID principy aplikované na kódové základy v Pythonu
  • Hexagonální/Clean Architektura a hranice
  • Vzory pro injekci závislostí a správu konfigurací

Modularita a opakovatelnost

  • Návrh knihovného vs aplikaci určeného kódu
  • API, stabilní rozhraní a semantické verze
  • Správa konfigurací, tajných klíčů a nastavení specifických pro prostředí

Den 3 — Konkurenčnost, asynchronní IO a výkon

Konkurenčnost a paralelismus

  • Základy vláknování a implikace GILu
  • Paralelní zpracování a procesové fondy pro CPU-intenzivní úkoly
  • Kdy použít concurrent.futures vs multiprocessing

Asynchronní programování s asyncio

  • Vzory async/await, událostový cyklus a zrušení
  • Návrh asynchronních knihoven a interoperabilita se synchronním kódem
  • IO-intenzivní vzory, zpětné tlaky a omezení rychlosti

Profilace a optimalizace

  • Nástroje pro profilaci: cProfile, pyinstrument, perf, memory_profiler
  • Optimalizace kritických cest a použití C-rozsireni/Numba tam, kde je vhodné
  • Měření latence, propustnosti a využití prostředků

Den 4 — Testování, CI/CD, observabilita a nasazování

Strategie testování a automatizace

  • Testování jednotek a fixtures s pytest; organizace testů
  • Testování na základě vlastností pomocí Hypothesis a kontraktní testování
  • Maskování, monkeypatching a testování asynchronního kódu

CI/CD, release a monitoring

  • Vkorporace testů a kontrolních bran do GitHub Actions/GitLab CI
  • Sestavování reprodukovatelných kontejnerů s Docker a multi-stage builds
  • Observabilita aplikací: strukturované záznamy, metriky Prometheusu a trasování

Zabezpečení, pevnost a osvědčené postupy

  • Kontrola závislostí, základy SBOM a kontrola zranitelností
  • Osvědčené postupy pro zabezpečení kódu: validace vstupů a správa tajných klíčů
  • Pevnost během běhu: omezení prostředků, uživatelská práva a bezpečnost kontejnerů

Kamenný projekt & revize

  • Team lab: návrh a implementace malé služby s využitím vzorů z kurzu
  • Testování, kontrola typů, balení a CI pipeline pro projekt
  • Koncová revize, kritika kódu a plán uskutečnitelných vylepšení

Souhrn a další kroky

Požadavky

  • Silná zkušenost s programováním v Pythonu na střední úrovni
  • Obratnost v objektově orientovaném programování a základním testování
  • Zkušenosti s používáním příkazového řádku a Git

Cílová skupina

  • Starší Python vývojáři
  • Software inženýři odpovědní za kvalitu a architekturu Python kódu
  • Tech Lead a MLOps/DevOps inženýři pracující s Python kódovými základy
 28 hodiny

Počet účastníků


Cena za účastníka

Reference (5)

Nadcházející kurzy

Související kategorie