Go – generické programování (GO3)

Programování, Rust, Go, Julia

Dokážete už psát běžné aplikace v Go, ale chtěli byste ovládnout umění psaní znovupoužitelného kódu nezávislého na konkrétních datových typech? Datový model Go nabízí možnost psát generické funkce a datové struktury, jejichž konkrétní podobu volí uživatel zadáním typových parametrů.

Vyzkoušejte si tvorbu obecných nástrojů, které můžete sdílet mezi projekty. Generika jsou například oproti C++ jednoduchá a striktní, a především založená na definicích rozhraní, které už se v Go používají. Implementace generik v Go je zajímavá a odlišná například od C++ nebo Rustu.

TOTO ŠKOLENÍ VÁM POMŮŽE:

  • Seznámit se se syntaxí a pravidly typových parametrů v Go (Go 1.18+)
  • Naučit se navrhovat a implementovat generické funkce a datové typy (kolekce, utilitky)
  • Pochopit použití constraints a vytvářet vlastní type sets pro robustní API
  • Zvládnout integraci generik s rozhraními a rozhodovat mezi generiky a interface-based polymorfismem
  • Řešit type inference, ladit chybové stavy a aplikovat idiomatické workaroundy
  • Optimalizovat výkon, velikost binárky a psát udržitelnou dokumentaci a testy pro generické komponenty

KDO BY SE MĚL KURZU ZÚČASTNIT?

  • Vývojáři backendu pracující v Go
  • Autoři knihoven a frameworků v Go
  • DevOps a systémoví inženýři píšící sdílené utility
  • Softwaroví architekti navrhující typově bezpečná API

KDE A KDY KURZ PROBÍHÁ?



Tento kurz není vypisován v otevřených termínech pro veřejnost.
Realizujeme jej výhradně jako školení na klíč, pro které může být zde uvedená osnova inspirací. Finální obsah, časový rozsah, termíny i forma realizace jsou vždy přizpůsobeny konkrétním požadavkům zadavatele. Školit můžeme také v angličtině.

Poptat kurz na míru

Náplň kurzu:

Skrýt detaily
  • Úvod do generik (Go 1.18+)
    1. Syntaxe typových parametrů, constraints (~, |, type sets)
    2. Vestavěné constraints (comparable, any), vlastní constraints
  • Generické funkce a typy
    1. Psaní obecných utilit (např. Min/Max, filtry, transformace)
    2. Generické kolekce a algoritmy (řazení, vyhledávání)
    3. Kompozice typů, asociované metody na generických typech
  • Rozhraní a generika
    1. Propojení interface a type parameters, návrh API
    2. Kdy volit interface-based polymorfismus a kdy generika
  • Chybové stavy a inference
    1. Type inference vs. explicitní typy, čitelnost a chyby kompilace
    2. Omezení generik v Go a idiomatické workaroundy
  • Výkon a čitelnost
    1. Dopad generik na binárku a výkon
    2. Udržitelnost, dokumentace, testy (table-driven s typy)
Doporučený předchozí kurz:
Go – pokročilé prostředky (GO2)
Doporučený následný kurz:
Go – paralelní programování (GO4)
Časový rozvrh:
3 dny (9:00-17:00)
Jazyk:
Česky