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