Sobes.tech
Senior

Já usou contextos na prática? Conta-me.

sobes.tech IA

Resposta da IA

Sim, tenho utilizado regularmente contextos em Go, especialmente para gerir o tempo de execução e cancelar operações em pedidos de rede e goroutines. O contexto permite transmitir sinais de cancelamento e limites de tempo através da cadeia de chamadas, o que ajuda a evitar fugas de goroutines e a controlar o tempo de execução.

Exemplo de uso:

ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()

select {
case <-time.After(3 * time.Second):
    fmt.Println("operação concluída")
case <-ctx.Done():
    fmt.Println("operação cancelada ou expirada")
}

Assim, se a operação demorar mais de 2 segundos, será interrompida, aumentando a robustez e a capacidade de resposta da aplicação.