Sobes.tech
Junior — Middle

Můžeš vyjmenovat různé scénáře využití kontextu v programování nebo architektuře systémů?

sobes.tech AI

Odpověď od AI

V jazyce Go se context používá k přenosu informací o stavu provádění, k zrušení operací a k nastavení časových limitů mezi gorutinami a funkcemi. Hlavní scénáře použití kontextu:

  • Zrušení operací: umožňuje zrušit dlouhé nebo blokující operace, například při zavírání serveru nebo zrušení požadavku.
  • Přenos časových limitů: lze nastavit čas, po kterém má být operace přerušena.
  • Přenos hodnot: kontext může obsahovat páry klíč-hodnota, například identifikátory požadavků, tokeny autentifikace.
  • Synchronizace: pomáhá koordinovat práci více gorutin tak, aby správně skončily.

Příklad použití:

ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()

// předáváme ctx do funkce, která může být přerušena časovým limitem
result, err := doSomething(ctx)

Tímto způsobem context pomáhá řídit životní cyklus operací a přenášet metadata.