Junior — Middle
Welche Informationen dürfen über den Kontext in der Anwendung übertragen werden?
sobes.tech KI
Antwort von AI
In Go werden Informationen, die mit der Steuerung des Lebenszyklus einer Anfrage oder Operation verbunden sind, typischerweise über den Kontext (context.Context) übermittelt, zum Beispiel:
- Abbruch der Operation (über den Kanal
Done()). - Fristen und Timeout (über
Deadline()). - Werte, die während der gesamten Kette von Aufrufen benötigt werden, wie Anforderungs-IDs, Authentifizierungstokens, Metadaten.
Wichtig: Große Objekte, Zustände oder Daten, die nicht mit der Steuerung der Anfrage zusammenhängen, sollten nicht in den Kontext eingefügt werden, um seine Bestimmung nicht zu verletzen und Speicherlecks zu vermeiden.
Beispiel für die Übertragung eines Wertes über den Kontext:
ctx := context.WithValue(context.Background(), "requestID", "12345")
requestID := ctx.Value("requestID")