Zkuste nás kontaktovat

Návrh Školení

Den 1 – Pevné základy Pythonu a moderní nástroje

Moderní funkce Pythonu a typová kontrola

  • Základy typové anotace, generika, protokoly a TypeGuard
  • Přehled datových tříd, jejich variant s uzamčením i knihovny attrs
  • Porovnávání vzorů (podle PEP 634+) a jeho běžné použití

Kvalita kódu a nástroje pro vývoj

  • Nástroje na formátování a kontrolu kódu: black, isort, flake8, ruff
  • Statická typová kontrola pomocí MyPy a pyright
  • Předběžné kontroly při odevzdání kódu a pracovní postupy vývojářů

Správa projektů a balíčků

  • Správa závislostí pomocí nástroje Poetry a virtuálních prostředí
  • Dobré postupy při vytváření struktury balíčků, definování vstupních bodů a verzování
  • Sestavování a distribuce balíčků na PyPI či do privátních registrů

Den 2 – Návrhové vzory a architektonické postupy

Návrhové vzory v Pythonu

  • Vytvářecí vzory: Továrna, Stavitel, Singleton (v jejich „pythonických“ podobách)
  • Strukturální vzory: Adaptér, Fasáda, Dekorátor, Proxy
  • Chování řídících vzorů: Strategie, Pozorovatel, Příkaz<\/li>

Architektonické principy

  • Použití principů SOLID při tvorbě kódu v Pythonu
  • Hexagonální architektura a její hranice oddělení od ostatních částí systému
  • Nástroje na injekci závislostí a správu konfigurace

Modularita a opětovné využití kódu

  • Rozdíly mezi knihovnami a samostatnými aplikacemi v Pythonu
  • Návrh API, zajištění stability rozhraní a použití sémantického verzování
  • Správa konfigurace, tajných dat a nastavení specifických pro dané prostředí

Den 3 – Souběžnost, asynchronní programování a optimalizace výkonu

Souběžnost a paralelismus

  • Základy použití vláken a dopady Globálního interpretorového uzamčení (GIL)
  • Použití víceprocesování pro úlohy náročné na výpočetní výkon
  • Kdy volit knihovnu concurrent.futures a kdy multiprocessing

Asynchronní programování s asyncio

  • Použití syntaxe async/await, správa událostní smyčky a řešení stornování operací
  • Vývoj asynchronních knihoven a kompatibilita s synchronním kódem
  • Způsoby řešení problému přetížení vstupně-výstupních operací, omezení rychlosti jejich vykonávání

Profilování a optimalizace výkonu

  • Nástroje na profilování: cProfile, pyinstrument, perf, memory_profiler
  • Optimalizace kritických částí programu a využití rozšíření napsaných v jazyce C či nástroje Numba tam, kde je to účelné
  • Měření doby odezvy, propustnosti systému a spotřeby zdrojů

Den 4 – Testování, automatizace s CI/CD, monitorování a nasazování

Strategie testování a jejich automatizace

  • Jednotkové testy s nástrojem pytest; organizace testů podle vhodných kategorií
  • Testy založené na vlastnostech pomocí knihovny Hypothesis a kontraktní testování
  • Mokování (mocking), přepisování funkcí (monkeypatching) a testování asynchronního kódu

Automatizace vývoje, nasazení a monitorování

  • Integrace testů do systémů GitHub Actions či GitLab CI s kontrolami kvality kódu
  • Sestavování reprodkovatelných kontejnerů pomocí Dockeru a víceetapového sestavení obrazů
  • Monitorování chování aplikace: strukturované logy, metriky v systému Prometheus a nástroje na sledování operací

Bezpečnost, zabezpečení kódu a další osvědčené postupy

  • Audit závislostí, tvorba seznamu komponent softwarového balíčku (SBOM) a kontrola na slabiny v kódu
  • Bezpečné programování: validace vstupů a ochrana citlivých dat základních nastavení systému
  • Omezení prostředků, řízení oprávnění uživatelů a zabezpečení kontejnerů při provozu

Závěrečný projekt a shrnutí znalostí

  • Laboratoř ve skupinách: navrhněte a vytvořte jednoduchou službu s využitím naučených vzorů a postupů.
  • Testování, kontrola typů, příprava balíčku a sestavení CI řetězce pro tento projekt.
  • Závěrečná diskuze, kritika napsaného kódu a stanovení konkrétních plánů na další zlepšení.

Shrnutí kurzu a doporučené další kroky

Požadavky

  • Silé znalosti programování v Pythonu na středně pokročilé úrovni
  • Orientace v objektově orientovaném programování a základních testech
  • Zkušenosti s používáním příkazového řádku a systému Git

Cílová skupina

  • Zkušení programátoři v Pythonu
  • Inženýři softwaru odpovědní za kvalitu a architekturu kódu v Pythonu
  • Techničtí vedoucí a inženýři MLOps/DevOps pracující s projekty v Pythonu
 28 Hodiny

Počet účastníků


Cena za účastníka

Reference (2)

Nadcházející kurzy

Související kategorie