Detail kurzu
Python - pokročilé vlastnosti
DataScript s.r.o.
Popis kurzu
V TĚCHTO MĚSÍCÍCH NABÍZÍME KURZY VE VIRTUÁLNÍ PODOBĚ.
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í.
Obsah kurzu
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
LIBOR JONÁT
Libor pracuje třetím rokem ve společnosti Quantlane, kde se stará o vývoj, nasazení a provoz aplikací pro obchodování na akciových burzách. Jeho primární doménou je Python, ve kterém provozuje většinu software ve firmě Quantlane.
OsnovaSjednocení 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
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
- 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čítač s jakoukoliv distribucí OS Linux
- Předinstalovaný Python ≥ 3.6
- Předinstalovaný nástroj virtualenv
- Webový prohlížeč
- Telnet client
Cieľová 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
Hodnotenie
Organizátor
Podobné kurzy
podľa názvu a lokality