Š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 virtualenvwrapperVytvoření a aktivace virtuálního prostředí pro projekt, správa více prostředí pomocí virtualenvwrapper.
pipenvInstalace 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ů.
typingStruč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.
secretsGenerování bezpečných tokenů.
collectionsVysvětlení a ukázky použití: namedtuple, ChainMap, OrderedDict, defaultdict.
contextlibVytvoř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.
itertoolsVysvě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í.