Sobes.tech
Junior — Middle

Môžeš uviesť situácie alebo prípady, v ktorých sa používa koncept kontextu?

sobes.tech AI

Odpoveď od AI

V jazyku Go sa koncept kontextu (context.Context) používa na riadenie životnosti operácií, ich zrušenia, časových limitov a prenos hodnôt medzi gorutinami.

Hlavné prípady použitia:

  • Zrušenie operácií: napríklad pri práci s sieťovými požiadavkami alebo databázami je možné zrušiť dlhú operáciu, ak klient preruší požiadavku.
  • Časové limity a timeouty: je možné nastaviť maximálny čas vykonávania operácie, po ktorom sa automaticky zruší.
  • Prenos hodnôt: napríklad identifikátory požiadaviek, tokeny autentifikácie, metadáta, ktoré sú potrebné na rôznych úrovniach volaní.

Príklad:

func HandleRequest(ctx context.Context) {
    select {
    case <-time.After(5 * time.Second):
        // Vykonať prácu
    case <-ctx.Done():
        // Operácia bola zrušená alebo vypršal časový limit
        return
    }
}

Kontekst pomáha písať lepšie spravovateľný a rýchlejšie reagujúci kód, najmä v viacvláknových a sieťových aplikáciách.