Go – paralelní programování (GO4)

Programování, Rust, Go, Julia

Už jste v Go jako doma a chcete efektivně využívat jeho hlavní sílu v podobě nástrojů na tvorbu paralelního kódu? Programy napsané v Go dostanou k dispozici plánovač a paralelismus se tak bere, jako by to byla součást jazyka. Programátor pouze řekne, co se má spouštět souběžně a plánovač Go se o to postará.

Vyzkoušejte si práci s gorutinami a posílání zpráv mezi paralelními úlohami. Pomocí běžných funkcí můžete psát aplikace, které poběží paralelně, budou využívat možnosti hardware, aniž byste se museli zabývat detaily operačního systému a vláken.

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

  • Seznámit se s idiomy gorutin, kanálů a plánovače Go
  • Porozumět použití context.Context pro cancelace a deadliny
  • Ovládnout synchronizační primitiva a atomické operace
  • Navrhovat a implementovat běžné vzory (worker pool, pipeline, fan-in/fan-out)
  • Zajistit robustní HTTP služby s per-request kontexty a graceful shutdown
  • Testovat a ladit souběžné programy pomocí -race, profilace a trace

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

  • Vývojáři backendu v Go
  • DevOps a SRE provozující Go služby
  • Systémoví a backendoví architekti
  • Inženýři zodpovědní za výkon a ladění
  • Testeři a QA pracující se souběžným kódem

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
  • Model souběžnosti v Go
    1. Gorutiny a plánovač: lehká vlákna, GOMAXPROCS
    2. Kanály: nebufferované vs. bufferované, vlastnictví dat a back-pressure
    3. select, timeouts, context.Context (cancel, deadline, values)
  • Synchronizační primitiva
    1. sync.WaitGroup, sync.Mutex/RWMutex, sync.Cond, sync.Map, sync.Pool
    2. Atomické operace (sync/atomic), paměťový model – prakticky
  • Vzory a architektura
    1. Worker pool, pipeline, fan-in/fan-out, throttle
    2. Idempotence, retries, deadletter, graceful shutdown
  • Souběžný I/O a HTTP služby
    1. Per-request context, deadline/cancellation, rate limiting
    2. Robustní server: shutdown, health checks, readiness
  • Testování a ladění souběžnosti
    1. -race, determinističtější testy, time-based flakiness
    2. Profilace gorutin, blokující místa, trace
Předpokládané znalosti:
Znalost programování v Go
Doporučený předchozí kurz:
Go – generické programování (GO3)
Doporučený následný kurz:
Go – návrhové vzory (GO5)
Časový rozvrh:
3 dny (9:00hod. - 17:00hod.)
Jazyk:
Česky