Š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.

Termín:
čtvrtek 26. 7. 2018 od 13:00
Cena:
zdarma, nutnost registrace
Kapacita:
Obsazeno 6 z 8 (v případě velkého zájmu může být vypsán další termín)
Místo konání:
TechHeaven Hub (mapa) – areál Depa 2015, modrá budova D vedle Centra robotiky
Cukrovarská 395/21
Plzeň

Registrace na školení

Prostory pro školení poskytla organizace TechHeaven.

Požadavky

  • 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í.

Osnova

1. Nástroje

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.

2. Novinky v Pythonu 3.6 a 3.7

Formátovací řetězce (Formatted String Literals)

Ukázka a vysvětlení formátovacích řetězců.

Type hints - modul typing

Stručný úvod do anotací, určení typů argumentů, návratové hodnoty a proměnných, základní typy dostupné v modulu typing.

Dataclasses

Instalace pro Python 3.6, vytváření tříd, výchozí hodnoty, porovnávání a hashe. Praktické příklady.

Modul secrets

Generování bezpečných tokenů.

3. Pokročilé funkce ze starších verzí Pythonu

Kolekce v modulu collections

Vysvětlení a ukázky použití: namedtuple, ChainMap, OrderedDict, defaultdict.

Context Managers a contextlib

Vytvoření vlastního Context Manager, zpracování výjimek, užitečné nástroje z modulu contextlib. Praktické příklady.

Dekorátory

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.

Generátory

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.

Modul 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.

Generator Expressions, list a dictionary comprehensions

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.

4. Testování

Úvod do automatických testů

Typy testů, anatomie jednoho testu (testovací funkce), vysvětlení code-coverage.

První testy s py.test

Testovací modul, struktura testů, best-practices pro psaní testů.

Fixtures v py.test

Stručný přehled fixtures dostupných v py.test, psaní vlastních fixtures, závislosti mezi fixtures a jejich skládání.

Materiály ke kurzu