Sobes.tech
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")