Ao aprender Go, é essencial evitar erros comuns que podem levar a códigos ineficientes, erros e frustração. Aqui estão alguns erros comuns a serem evitados:
1. Entrada no Mapa Nulo:
- Problema: Quando você define um mapa no Go, ele é inicialmente nulo. Se você tentar acessá-lo diretamente, seu programa entrará em pânico.
- Solução: Inicialize seu mapa usando a função `make` ou um mapa literal.
2. Desreferência de ponteiro nulo:
- Problema: Se você tentar desreferenciar um ponteiro nulo, seu programa entrará em pânico.
- Solução: Certifique-se de criar um novo ponteiro ou usar um método receptor de ponteiro.
3. Valores múltiplos em contexto de valor único:
- Problema: Quando você tenta retornar vários valores em um contexto de valor único, seu programa entra em pânico.
- Solução: certifique-se de usar os tipos de retorno corretos e tratar os erros adequadamente.
4. Valores de matriz imutáveis:
- Problema: Matrizes em Go são valores, não referências. Isso significa que as alterações em um array não afetam o array original.
- Solução: Use fatias em vez de matrizes, pois as fatias são referências e podem ser modificadas.
5. Variável de sombra:
- Problema: Se você declarar uma variável com o mesmo nome de um parâmetro de função, isso ocultará o parâmetro.
- Solução: Use um nome diferente para a variável ou use o comando `go run` com o sinalizador `-gcflags` para desativar o sombreamento.
6. Vírgula ausente em matriz multilinha ou fatia:
- Problema: Se você esquecer de incluir uma vírgula no final de cada linha em uma matriz ou fatia multilinhas, seu código não será compilado.
- Solução: Certifique-se de que cada linha termine com uma vírgula.
7. Uso incorreto da função Trim:
- Problema: A função `trim` em Go remove todos os pontos Unicode em um cutset. Isso pode levar a resultados inesperados.
- Solução: Use `TrimSuffix` em vez de `trim` para obter mais controle sobre o processo de corte.
8. Uso incorreto da função de cópia:
- Problema: A função `copy` em Go copia o número mínimo de elementos da origem para o destino. Isso pode levar a resultados inesperados.
- Solução: certifique-se de usar o número correto de elementos e tratar os erros adequadamente.
9. Não revisando jogos:
- Problema: Não revisar seus jogos pode levar à perda de oportunidades de melhoria.
- Solução: Revise regularmente seus jogos para identificar áreas que precisam ser melhoradas.
10. Não obtendo ajuda de jogadores mais fortes:
- Problema: Não buscar a ajuda de jogadores mais fortes pode levar à perda de oportunidades de melhoria.
- Solução: Procure ajuda de jogadores mais fortes para aprender novas estratégias e melhorar seu jogo.
11. Não usando valores de retorno nomeados:
- Problema: Não usar valores de retorno nomeados pode resultar em código mais difícil de ler.
- Solução: use valores de retorno nomeados para tornar seu código mais legível e fácil de manter.
12. Uso incorreto de adiar:
- Problema: O uso indevido da palavra-chave `defer` pode levar a um código difícil de ler e entender.
- Solução: Certifique-se de usar `defer` corretamente para adiar a execução de uma função até que a função circundante retorne.
13. Uso incorreto de tipos de dados:
- Problema: Usar o tipo de dados errado pode levar a um comportamento inesperado.
- Solução: Certifique-se de usar o tipo de dados correto para a tarefa.
14. Não usar bibliotecas integradas:
- Problema: não usar bibliotecas integradas pode resultar em código mais difícil de escrever e manter.
- Solução: Use bibliotecas integradas para economizar tempo e esforço.
15. Não usar ferramentas Linting:
- Problema: não usar ferramentas de linting pode resultar em código mais difícil de ler e entender.
- Solução: Use ferramentas de linting como `golangci-lint` para identificar erros em seu código.
Ao evitar esses erros comuns, você pode garantir que seu código Go seja eficiente, legível e de fácil manutenção.
Citações:[1] https://www.bacancytechnology.com/blog/common-mistakes-in-go
[2] https://www.reddit.com/r/baduk/comments/9wocj0/common_mistakes_in_learning_go/
[3] https://www.manning.com/books/100-go-mistakes-and-how-to-avoid-them
[4] https://www.linkedin.com/posts/ubaydah_five-common-mistakes-to-avoid-when-learning-activity-7057402591013482496-TeIu?trk=public_profile_like_view
[5] https://www.tftus.com/blog/the-most-common-golang-development-mistakes