Go – pokročilé prostředky (GO2)

Programování, Rust, Go, Julia

Programujete v Go a chtěli byste efektivně využívat jeho možnosti? Přijďte si ujasnit, co pro vás může Go udělat a jak využívat jeho jednoduchosti a flexibility. Go je v mnoha ohledech odlišný od klasických kompilovacích jazyků a zasahuje specifický segment trhu.

Podívejte se detailněji na datový model Go, abyste měli přehled, co si můžete v tom jazyce dovolit a jaký to může mít vliv na výkon výsledné aplikace. Poznejte blíže programovací jazyk, který pohání mnoho cloudových služeb a nástrojů a poskytuje mnohým programátorům rozumný balanc mezi rychlostí vývoje a výkonem vyvíjeného software.

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

  • Seznámit se do hloubky s datovým modelem Go, včetně interních principů slice a sdílení podkladového pole
  • Optimalizovat práci s mapami a minimalizovat náklady při existenci klíče, iteraci a alokacích
  • Navrhovat robustní API pomocí rozhraní, embeddingu a idiomů jako io.Reader/io.Writer
  • Zlepšit chybové zpracování a diagnostiku pomocí obohacených chyb, typovaných chyb a strukturovaného logování
  • Zvýšit výkon aplikací pomocí technik šetření alokací, předalokace a profilace (pprof, trace, -race)
  • Zavést efektivní build & release postupy včetně cross-compilation, CGO nastavení a ldflags

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

  • Vývojáři backendu v Go
  • DevOps / SRE pracující s Go nástroji a službami
  • Vývojáři knihoven a SDK v Go
  • Inženýři zaměření na výkon a profilaci aplikací

Privátní školení a termíny na míru

Toto téma je možné zrealizovat pouze jako privátní, a to nejen formou uzavřeného firemního kurzu, ale také jako individuální konzultaci pro jednotlivce.

V případě kurzu na míru je níže uvedená osnova pouze inspirací. Finální obsah vzdělávání, jeho délka i termíny budou přizpůsobeny konkrétním vstupním znalostem, potřebám a cílům účastníků.

Cenovou nabídku vám rádi připravíme na základě vstupů zaslaných e-mailem nebo zadaných prostřednictvím poptávkového formuláře. Cena privátního školení vychází z náročnosti požadované obsahové náplně školení, časového rozsahu a celkového počtu přihlášených osob.

KDE A KDY KURZ PROBÍHÁ?

Kontaktujte nás

S námi máte na výběr: Přijďte na kurz osobně do naší učebny, nebo se ke kurzu připojte online. Pokud preferujete online formu, uveďte prosím do poznámky v objednávce "Připojím se virtuálně".
Více informací k hybridní formě školení naleznete zde.

Náplň kurzu:

Skrýt detaily
  • Hlouběji do datového modelu
    1. Interna slice (realloc, copy, grow), sdílení podkladového pole
    2. Optimalizace práce s map (existence klíče, iterace, alokace)
  • Rozhraní, metody a návrh API
    1. Smluvní programování přes interface a malé rozhraní
    2. io.Reader, io.Writer jako idiom; adaptace vlastních typů
    3. Vnořování (embedding) a kompozice chování
  • Chybové modely a diagnostika
    1. Obohacování chyb (fmt.Errorf("%w")), sentinels vs. typované chyby
    2. Logování (log/slog), strukturované logy, úroveň a kontext
  • Souborový a síťový I/O
    1. os, bufio, filepath, kontextové deadline pro I/O
    2. Základy net/http: klient, server, middlewares
  • Výkon a profilace
    1. Úniky alokací, úspora alokací, předalokace
    2. Profilace: pprof, trace, -race (race detector)
    3. Praktické zásady pro rychlý/čistý kód
  • Build & release pipeline
    1. Build tagy, CGO_ENABLED, cross-compile, ldflags
    2. Struktura repo pro knihovny vs. aplikace
Předpokládané znalosti:
Základy jazyka Go
Doporučený předchozí kurz:
Go – úvod do programování (GO1)
Doporučený následný kurz:
Go – generické programování (GO3)
Časový rozvrh:
3 dny (9:00hod. - 17:00hod.)
Jazyk:
Česky