Sobes.tech
Junior — Middle

Peux-tu énumérer différents scénarios d'utilisation du contexte en programmation ou en architecture système?

sobes.tech IA

Réponse de l'IA

En Go, context est utilisé pour transmettre des informations sur l'état d'exécution, annuler des opérations et définir des délais entre goroutines et fonctions. Les principaux scénarios d'utilisation du contexte :

  • Annulation d'opérations : permet d'annuler des opérations longues ou bloquantes, par exemple lors de la fermeture d'un serveur ou de l'annulation d'une requête.
  • Transmission de délais : on peut définir un temps après lequel l'opération doit être interrompue.
  • Transmission de valeurs : le contexte peut contenir des paires clé-valeur, comme des identifiants de requêtes, des jetons d'authentification.
  • Synchronisation : aide à coordonner le travail de plusieurs goroutines pour qu'elles se terminent correctement.

Exemple d'utilisation :

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

// transmettre ctx à une fonction qui peut être interrompue par le délai d'expiration
result, err := doSomething(ctx)

Ainsi, context aide à gérer le cycle de vie des opérations et à transmettre des métadonnées.