Sobes.tech
Junior — Middle

Môžeš vymenovať rôzne scenáre použitia kontextu v programovaní alebo architektúre systémov?

sobes.tech AI

Odpoveď od AI

V jazyku Go sa context používa na prenos informácií o stave vykonávania, na zrušenie operácií a na nastavenie časových limitov medzi gorutinami a funkciami. Hlavné scenáre použitia kontextu:

  • Zrušenie operácií: umožňuje zrušiť dlhé alebo blokujúce operácie, napríklad pri zatváraní servera alebo zrušení požiadavky.
  • Prenos časových limitov: možno nastaviť čas, po ktorom má byť operácia prerušená.
  • Prenos hodnôt: kontext môže obsahovať páry kľúč-hodnota, napríklad identifikátory požiadaviek, tokeny na overenie.
  • Synchronizácia: pomáha koordinovať prácu viacerých gorútin, aby správne skončili.

Príklad použitia:

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

// odovzdávame ctx do funkcie, ktorá môže byť prerušená časovým limitom
result, err := doSomething(ctx)

Týmto spôsobom context pomáha riadiť životný cyklus operácií a prenášať metadáta.