Kurzy a certifikace Dev & Test

Python

Python - pokročilé vlastnosti

25.900 CZK

Cena (bez DPH)

Days2
3. 12. – 4. 12. 2026
virtual
CZ

Kurz Python – pokročilé vlastnosti je určen pro programátory, kteří mají základní znalosti jazyka Python 3, chtějí si prohloubit své vědomosti a zároveň se zdokonalit v návrhu a řešení aplikací a algoritmů v tomto jazyce. Hlavní důraz bude kladen na asynchronní programování, jehož použití se neustále zvyšuje. Zároveň si ale ukážeme, kde je jeho použití zbytečné.

Během kurzu budeme řešit ukázkový projekt, ve kterém využijeme jednotlivé vlastnosti jazyka a ukážeme si, jak jednoduše fungují některé aspekty, které mohou připomínat spíše magii. Veškeré programování bude probíhat na OS Linux v Pythonu ≥ 3.6 v implementaci CPython.

Po skončení kurzu budou účastníci rozumět pokročilým konceptům jazyka Python, vědět, jak je rozumně využívat a jak škálovat některé algoritmy pomocí asynchronního programování.

Lektor kurzu

Pavel Tišnovský – lektor kurzu

PAVEL TIŠNOVSKÝ

Pavel Tišnovský je zkušený softwarový vývojář, technologický odborník a lektor. Působí ve společnosti Red Hat, kde se zaměřuje na AI systémy a frameworky, zejména Llama Stack. Má dlouholeté zkušenosti s programovacími jazyky Python, Go, Java a Clojure a věnuje se také technickému psaní a vzdělávání.

Více o lektorovi

Pavel Tišnovský vystudoval Fakultu informačních technologií VUT v Brně. Během své profesní kariéry se věnoval vývoji softwaru v jazycích C, C++ a Java, technologiím OpenJDK i vývoji mikroslužeb v Pythonu a Go.

Od roku 2009 působí ve společnosti Red Hat, kde zastává pozici Tech Lead – AI Systems and Frameworks. Zaměřuje se zejména na technologie související s umělou inteligencí a frameworkem Llama Stack.

Je autorem odborných článků na serveru Root.cz a knih Evoluce Python a Programovací jazyk Go. Věnuje se také výuce na VUT v Brně a vedení odborných školení.

Mezi jeho další odborné zájmy patří funkcionální programování v jazyce Clojure a programování v assembleru.

Cílová skupina

  • Programátoři se základní znalostí jazyka Python 3
  • IT specialisté, kteří potřebují pokročilou automatizaci
  • Všichni zvídaví lidé, kteří chtějí vědět, jak některé věci fungují pod pokličkou

Cíle kurzu

Účastníci se mimo jiné naučí:

  • Napsat celou aplikaci, která bude schopna přes síť publikovat data pro své klienty
  • Psát testy pro aplikaci a asynchronní funkce
  • Používat pokročilé vlastnosti jazyka Python (dekorátory, context managery, generátory, ...)
  • Integrovat tyto vlastnosti s asynchronním programováním

Osnova

Sjednocení základních znalostí

  • Použití Pipfile a pipenv namísto requirements.txt
  • Návrh základní šablony pro spustitelnou aplikaci
  • Příprava testů
  • Typové anotace a Python

Návrh aplikace, která bude tvořena během kurzu

  • Příprava funkcí pro načítání obsahu – generátory
  • Testování generátorů
  • Pozor na assert mimo testy
  • Jednoduchý data logging do SQLite (použití a napsání vlastního context manageru)

Jednoduchý HTTP server v Pythonu

  • SimpleHTTPServer
  • Flask (velice jednoduchá ukázka)
  • Použití manhole pro debugování běžící aplikace

GIL uvnitř CPythonu

  • Co? Proč?
  • Použití vláken na „škálování“ a proč nefungují
  • Jak tedy škálovat?
  • Multiprocessing a concurrent modul
  • Pozor na Process a Thread pooly (velikost)

Použití asyncio

  • Rozšířená syntaxe
  • Základní pojmy

Přepsání webového serveru do aiohttp

  • Vysvětlení pojmů a chování v asyncio
  • Dekorátory, context managery
  • Testy a asyncio
  • Manhole v asyncio
  • Transport-less protocols

Pokročilý error handling v asyncio

Debugování asyncio aplikace

  • Použití socketů a telnetu jako klienta
  • Slow callbacks v asyncio
  • Context variables v Pythonu 3.7

Produkční nasazení naší asyncio aplikace

  • Gunicorn
  • Docker

Doplňující témata

Pokud v rámci kurzu zbyde čas, můžeme se podívat na některé edge cases uvnitř Pythonu a implementace CPython a jejich řešení.

Asyncio a vlákna

  • run_coroutine_threadsafe

Co dělat, pokud CPython SEGFAULTuje

  • Kdy může CPython SEGFAULTnout?
  • Faulthandler
  • Core dump CPythonu a debugování
  • Python stack trace uvnitř gdb

Profilování aplikace

  • Statistické profilování vs. line profiler

Monitorování aplikace

  • StatsD, Prometheus

Předpoklady účastníka

  • Základní kurz Pythonu
  • Základní povědomí o síťování
  • Základní znalost OS Linux
  • Použití terminálu pro spouštění příkazů

Požadavek na BYOD

  • Počítač s libovolnou distribucí OS Linux
  • Předinstalovaný Python ≥ 3.6
  • Předinstalovaný nástroj virtualenv
  • Webový prohlížeč
  • Klient Telnet

Poptejte kurz u nás

Kurzy
Submit
* Povinné pole