Context em Go: Como Usar context.Context Corretamente

Domine context.Context em Go: cancellation, timeouts, deadlines, WithValue, boas práticas em HTTP handlers e banco de dados. Evite os erros mais comuns.

O pacote context é uma das peças mais importantes do ecossistema Go. Ele resolve um problema fundamental em sistemas concorrentes: como sinalizar cancelamento, deadlines e passar metadados entre goroutines de forma segura e padronizada. Se você escreve APIs, acessa bancos de dados ou trabalha com concorrência em Go, dominar context.Context é essencial.

O que é Context?

context.Context é uma interface que carrega deadlines, sinais de cancelamento e valores request-scoped através das fronteiras de uma API. Toda chamada que pode demorar ou ser cancelada deve receber um context.Context como primeiro parâmetro.

Ler mais →

Generics em Go: Guia Prático com Exemplos Reais

Aprenda Generics em Go com exemplos práticos: type parameters, constraints, funções e structs genéricas, repository pattern e quando não usar generics.

Generics foram introduzidos no Go 1.18 e representam uma das maiores mudanças na linguagem desde sua criação. Com eles, você pode escrever funções e tipos reutilizáveis sem sacrificar a segurança de tipos que Go oferece. Neste guia, vamos explorar generics na prática com exemplos que você pode usar no dia a dia.

O que São Generics?

Antes de generics, quando precisávamos de uma função que operasse sobre diferentes tipos, tínhamos duas opções ruins: duplicar código para cada tipo ou usar interface{} (agora any) e perder a segurança de tipos em tempo de compilação.

Ler mais →