Pular para o conteúdo
Tecnologia

Erros Comuns em GoLang: como evitá-los

Entenda como evitar armadilhas silenciosas ao programar com Go e elevar sua qualidade de código.

Por que isso é importante

Erros Comuns em GoLang: como evitá-los. Entenda como evitar armadilhas silenciosas ao programar com Go e elevar sua qualidade de código.

1. Validações Mal Escritas

Erro clássico: escrever estrutura de controle complexa quando Go pede simplicidade.
Valida entrada? Então corta o else desnecessário.

Atenção

Em Go, dá pra encerrar a função logo ao detectar erro.
Usa isso a favor: evita estrutura aninhada demais.

2. Confundir Concorrência com Paralelismo

Concorrência é lidar com várias tarefas ao mesmo tempo, mas não necessariamente executando junto.
Paralelismo é rodar tudo literalmente junto. São coisas diferentes.

Importante

Go manda bem em concorrência com GoRoutines, mas isso não quer dizer que você tá paralelizando de fato.
Entende a diferença?

3. Confundir Slice Nil com Slice Vazio

Slice não inicializado (nil) se comporta diferente de slice vazio.
Isso mexe direto com JSON e outras interfaces. Cuidado.

Atenção

Sempre retorna slice inicializado, mesmo vazio.
Evita bug por ponteiro nulo que vai te fazer perder horas debugando.

4. Ignorar Erros de Funções

Compilador deixa, mas você não deve ignorar erro retornado. Erro silencioso vira bug impossível de achar depois.

Prática recomendada

Sempre pega o segundo retorno e trata, mesmo que seja só pra logar.
Seu eu do futuro agradece.

5. Alterações Ineficientes com Range

O for range cria cópia dos elementos. Resultado? Você mexe na cópia, o original fica intacto.
Quer modificar de verdade? Usa o índice.

Dica

Pra alterar lista, percorre com índice e acessa elemento direto.
Simples e funciona.

Checklist de Boas Práticas em Go

  • Evite blocos else desnecessários em validações
  • Tenha clareza entre concorrência e paralelismo
  • Inicialize slices antes de retornar
  • Trate todos os erros capturados ao chamar funções
  • Evite modificações por cópia dentro de for range