Junior — Middle
Jakie informacje można przekazywać przez kontekst w aplikacji?
sobes.tech AI
Odpowiedź od AI
W Go zazwyczaj przekazuje się informacje związane z zarządzaniem cyklem życia żądania lub operacji za pomocą kontekstu (context.Context), na przykład:
- Anulowanie operacji (przez kanał
Done()). - Terminy i limity czasowe (przez
Deadline()). - Wartości potrzebne przez cały łańcuch wywołań, takie jak identyfikatory żądań, tokeny uwierzytelniania, metadane.
Ważne: nie należy umieszczać w kontekście dużych obiektów, stanów lub danych, które nie są związane z zarządzaniem żądaniem, aby nie naruszać jego przeznaczenia i nie powodować wycieków pamięci.
Przykład przekazywania wartości przez kontekst:
ctx := context.WithValue(context.Background(), "requestID", "12345")
requestID := ctx.Value("requestID")