Sobes.tech
Junior — Middle

Descreva uma situação em que o uso de contextos seria justificado e eficaz.

sobes.tech IA

Resposta da IA

No Go, os contextos (context.Context) são usados para gerir o tempo de vida das operações, especialmente em chamadas assíncronas ou de rede. Por exemplo, se tiver um servidor HTTP que processa pedidos e desejar cancelar o processamento se o cliente interromper a ligação ou se o tempo limite for excedido, o uso do contexto será adequado.

Exemplo:

func handler(w http.ResponseWriter, r *http.Request) {
    ctx := r.Context()
    select {
    case <-time.After(5 * time.Second):
        fmt.Fprintln(w, "Processamento concluído")
    case <-ctx.Done():
        err := ctx.Err()
        fmt.Println("Pedido cancelado ou tempo limite atingido:", err)
    }
}

Aqui, o contexto permite cancelar uma operação prolongada se o cliente se desconectar ou se o tempo limite expirar, economizando recursos e melhorando a capacidade de resposta da aplicação.