Sobes.tech
Junior — Middle

Peut-on utiliser le contexte pour transmettre des données entre composants ou fonctions?

sobes.tech IA

Réponse de l'IA

Dans Go, le contexte (context.Context) est conçu pour transmettre des signaux d'annulation, des délais et des valeurs liées à la requête ou à l'opération, entre goroutines et fonctions. Cependant, il n'est pas recommandé d'utiliser le contexte pour transmettre des données arbitraires entre composants ou fonctions.

Raisons :

  • Le contexte doit contenir uniquement des données liées à la gestion du cycle de vie de l'opération (par exemple, délais, annulations).
  • Transmettre des données métier via le contexte complique le code et réduit sa lisibilité.

L'approche correcte consiste à transmettre explicitement les données nécessaires via les paramètres des fonctions ou à utiliser d'autres structures pour échanger des données.

Exemple d'utilisation du contexte pour transmettre une valeur liée à la requête :

ctx := context.WithValue(context.Background(), "userID", 12345)
userID := ctx.Value("userID")

Mais il est préférable d'éviter cette approche pour transmettre des données entre composants, sauf si cela est vraiment nécessaire pour gérer le cycle de vie de l'opération.