100 erros em Go e como evitá-los
483 páginas
Portuguese
PDF
4.5

100 erros em Go e como evitá-los

100 erros em Go e como evitá-los

Autor:

Ano:

Resumo:

Introdução

O livro «100 Go Mistakes and How to Avoid Them» (Teiva Harsanyi, 2022) não é apenas uma coleção de erros típicos, mas sim um guia prático completo para escrever código Go de qualidade, eficiente e sustentável. O autor, um engenheiro e consultor experiente, reuniu 100 problemas reais enfrentados por desenvolvedores e ofereceu soluções claras e bem fundamentadas. O livro foi lançado em 2022 e rapidamente se tornou um best-seller na categoria «Golang». Em 483 páginas, ele cobre todos os aspectos-chave da linguagem: desde construções básicas até tópicos avançados, como concorrência, gerenciamento de memória e testes.

Sobre o que é o livro

O livro é estruturado em seções temáticas, cada uma dedicada a uma área específica do desenvolvimento em Go. Dentro de cada seção, há de 5 a 15 erros específicos com análise detalhada. Cada capítulo segue um modelo único: descrição do problema, exemplo de código, explicação de por que é um erro e, finalmente, a abordagem correta. Esse formato permite usar o livro tanto como um tutorial quanto como um guia de referência. Os principais tópicos são:

  • Construções básicas — variáveis, tipos de dados, estruturas de controle, funções.
  • Strings e coleções — trabalho com strings, slices, maps, armadilhas comuns.
  • Interfaces e genéricos — design correto de interfaces, erros típicos com interfaces vazias.
  • Concorrência — goroutines, canais, mutexes, atômicos, padrões de sincronização.
  • Gerenciamento de memória — pilha, heap, escape analysis, garbage collection, vazamentos.
  • Tratamento de erros — panic, recover, erros como valores, wrapping.
  • Testes e benchmarks — escrita de testes, mocks, profiling.
  • Biblioteca padrão — JSON, HTTP, manipulação de arquivos.

Para quem é este livro

O livro é voltado para um público amplo de desenvolvedores Go — desde iniciantes que já dominam a sintaxe até engenheiros experientes que desejam aprofundar sua compreensão dos mecanismos internos da linguagem. Será especialmente útil para quem está migrando para Go a partir de outras linguagens (Java, Python, C++), pois muitos erros estão relacionados à transferência incorreta de hábitos. O livro também será um excelente recurso para líderes técnicos e revisores de código que desejam aprender a identificar pontos problemáticos no código alheio.

O que o leitor aprenderá

  • Por que não se deve usar range para copiar slices e como copiar corretamente.
  • Como evitar condições de corrida ao trabalhar com goroutines e canais.
  • Qual a diferença entre sync.Mutex e sync.RWMutex e quando usar cada um.
  • Como tratar erros corretamente para não perder o contexto.
  • Por que defer pode causar vazamento de memória e como evitar isso.
  • Como escrever benchmarks eficientes e interpretar seus resultados.
  • Erros típicos ao trabalhar com JSON (por exemplo, ignorar json.RawMessage).
  • Como usar genéricos (Go 1.18+) sem complexidade desnecessária.
  • Por que não se deve confiar na ordem dos elementos em um map.
  • Como evitar panics em código de produção.

Pontos fortes do livro

O primeiro e principal é o foco prático. Cada erro é acompanhado de código real que pode ser executado imediatamente para visualizar o problema. O segundo é a profundidade da explicação: o autor não apenas diz «não faça isso», mas explica por que isso acontece no nível do compilador, runtime ou biblioteca padrão. O terceiro é a estruturação: o livro é dividido em capítulos pequenos, permitindo a leitura a partir de qualquer ponto. O quarto é a atualidade: são consideradas mudanças até o Go 1.19, incluindo genéricos. O quinto é a qualidade da tradução (no caso da edição em russo) — terminologia precisa, exemplos adaptados. Por fim, o livro contém inúmeras referências à documentação oficial.

Recommendations