Sobes.tech
Junior — Middle

Décrivez une situation dans laquelle l'utilisation de contextes serait justifiée et efficace.

sobes.tech IA

Réponse de l'IA

Dans Go, les contextes (context.Context) sont utilisés pour gérer la durée de vie des opérations, en particulier dans les appels asynchrones ou réseau. Par exemple, si vous avez un serveur HTTP qui traite des requêtes et que vous souhaitez annuler le traitement si le client interrompt la connexion ou si le délai d'attente dépasse la limite, l'utilisation du contexte sera appropriée.

Exemple :

func handler(w http.ResponseWriter, r *http.Request) {
    ctx := r.Context()
    select {
    case <-time.After(5 * time.Second):
        fmt.Fprintln(w, "Traitement terminé")
    case <-ctx.Done():
        err := ctx.Err()
        fmt.Println("Requête annulée ou délai d'attente dépassé :", err)
    }
}

Ici, le contexte permet d'annuler une opération longue si le client se déconnecte ou si le délai d'attente expire, ce qui économise des ressources et améliore la réactivité de l'application.