Junior — Middle
Czy możesz wymienić różne scenariusze wykorzystania kontekstu w programowaniu lub architekturze systemów?
sobes.tech AI
Odpowiedź od AI
W Go context służy do przekazywania informacji o stanie wykonania, anulowania operacji oraz ustawiania limitów czasowych między goroutines i funkcjami. Główne scenariusze użycia kontekstu:
- Anulowanie operacji: umożliwia anulowanie długotrwałych lub blokujących operacji, na przykład podczas zamykania serwera lub anulowania żądania.
- Przekazywanie limitów czasowych: można ustawić czas, po którym operacja powinna zostać przerwana.
- Przekazywanie wartości: kontekst może zawierać pary klucz-wartość, na przykład identyfikatory żądań, tokeny uwierzytelniania.
- Synchronizacja: pomaga koordynować pracę wielu goroutines, aby poprawnie się kończyły.
Przykład użycia:
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
// przekazujemy ctx do funkcji, która może zostać przerwana przez limit czasu
result, err := doSomething(ctx)
W ten sposób context pomaga zarządzać cyklem życia operacji i przekazywać metadane.