Kurzy a certifikace Dev & Test

Python

Python - pokročilé vlastnosti

25.900 CZK

Cena (bez DPH)

Days2
3. 12. 4. 12. 2024
virtual
CZ
6. 2. 7. 2. 2025
virtual
CZ
17. 3.18. 3. 2025
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. Ale zároveň si ukážeme, kde je jeho použití zbytečné.

Během kurzu budeme řešit ukázkový projekt, ve kterém budeme využívat jednotlivých vlastností 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 Python ≥ 3.6 v implementaci CPython.

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

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
  • Psaní testů pro aplikaci a asynchronní funkce
  • Znalost pokročilých vlastností jazyka Python (dekorátory, context-managery, generátory, ...)
  • A jak tyto věci integrují 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 Python

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

GIL uvnitř CPython

  • 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 clienta
  • Slow callbacks v asyncio
  • context-variables v Python 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-case uvnitř Python a CPython implementace 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 Python
  • 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 jakoukoliv distribucí OS Linux
  • Předinstalovaný Python ≥ 3.6
  • Předinstalovaný nástroj virtualenv
  • Webový prohlížeč
  • Telnet client

Poptejte kurz u nás

Kurzy
Submit
* Povinné pole
Při poskytování našich služeb nám pomáhají soubory cookie. Využíváním našich služeb s jejich používáním souhlasíte.
Další informace