Interfaces em Go: Entenda de Verdade

Guia completo sobre interfaces em Go. Implementação implícita, interface vazia, type assertions, composição e padrões do mundo real.

Interfaces em Go: Entenda de Verdade

“The bigger the interface, the weaker the abstraction.” – Rob Pike

Interfaces em Go são diferentes de qualquer outra linguagem. Não existem palavras-chave como implements ou extends. Em Go, interfaces são satisfeitas implicitamente: se um tipo tem os métodos que a interface exige, ele já a implementa. Ponto.

Essa decisão de design torna Go incrivelmente flexível para desacoplamento, testes e composição. Neste guia, vamos do conceito básico até padrões avançados usados em projetos reais.

Ler mais →

Tratamento de Erros em Go: Guia Definitivo

Domine o tratamento de erros em Go. Error interface, custom errors, errors.Is/As, wrapping, sentinel errors e boas práticas para código robusto.

Tratamento de Erros em Go: Guia Definitivo

“Errors are values.” – Rob Pike

Em Go, erros não são exceções. Não existe try/catch. Erros são valores comuns que você retorna, inspeciona e trata de forma explícita. Essa abordagem, que pode parecer verbosa no começo, é uma das maiores forças da linguagem: torna o fluxo de erro visível, previsível e impossível de ignorar acidentalmente.

Neste guia, vamos explorar tudo sobre tratamento de erros em Go, desde o básico até padrões avançados usados em produção.

Ler mais →