Školení pro mírně pokročilé programátory v jazyce Python, kteří v tomto jazyce vyvíjejí (či plánují vyvíjet) software.
Účastníky seznámí s nástroji, které pomáhají vytvářet a udržovat prostředí aplikace, dále pak s vybranými novinkami v jazyce Python 3.6 a 3.7 i některými konstrukcemi a funkcemi, které jsou v Pythonu již déle, avšak mnohým začínajícím vývojářům jejich pochopení činí problémy. Na závěr školení bude probráno automatické testování s využitím nástroje py.test.
Obsah školení bude přizpůsoben úrovni a požadavkům účastníků. Z časových důvodů mohou být pak některé části školení vynechány.
Prostory pro školení poskytla organizace TechHeaven.
Znalost Pythonu 3 na úrovni mírně pokročilého - na místě nebude čas vysvětlovat základy jazyka, proto školení není vhodné pro začínající programátory. Zkušenější programátoři se mohou naopak nudit, proto zvažte, zda nepřenechat místo někomu méně zkušenému.
Vlastní notebook s Windows/Linux/macOS a nainstalovaným Python 3.6 či 3.7. Některé knihovny nové v Pythonu 3.7 lze doinstalovat i do verze 3.6, proto je tato verze pro účely školení plně dostačující.
virtualenv
a virtualenvwrapper
Vytvoření a aktivace virtuálního prostředí pro projekt, správa více prostředí pomocí virtualenvwrapper
.
pipenv
Instalace a aktualizace závislostí projektu, vysvětlení lock souboru, vytvoření requirements.txt
pro prostředí bez pipenv
.
Ukázka a vysvětlení formátovacích řetězců.
typing
Stručný úvod do anotací, určení typů argumentů, návratové hodnoty a proměnných, základní typy dostupné v modulu typing
.
Instalace pro Python 3.6, vytváření tříd, výchozí hodnoty, porovnávání a hashe. Praktické příklady.
secrets
Generování bezpečných tokenů.
collections
Vysvětlení a ukázky použití: namedtuple
, ChainMap
, OrderedDict
, defaultdict
.
contextlib
Vytvoření vlastního Context Manager, zpracování výjimek, užitečné nástroje z modulu contextlib
. Praktické příklady.
Vysvětlení dekorátorů a jejich funkce, dekorátory s parametry, functools.wraps
, aplikace více dekorátorů, vytvoření dekorátoru z Context Manageru. Praktické příklady.
Vysvětlení generátorů, vytvoření vlastního generátoru, delegace generátorů, vestavěné generátory v Pythonu: range
, enumerate
, filter
, map
, reversed
, zip
. Praktické příklady.
itertools
Vysvětlení a ukázky použití funkcí z modulu itertools
: cycle
, repeat
, chain
, islice
, starmap
, filterfalse
, takewhile
/dropwhile
, zip_longest
, product
, permutations
, combinations
.
Vysvětlení a ukázky použití: generator expressions, list comprehensions, dictionary comprehensions. Vestavěné funkce pro použití s generátory: all
, any
, min
, max
, sum
.
Typy testů, anatomie jednoho testu (testovací funkce), vysvětlení code-coverage.
Testovací modul, struktura testů, best-practices pro psaní testů.
Stručný přehled fixtures dostupných v py.test, psaní vlastních fixtures, závislosti mezi fixtures a jejich skládání.