Algoritmos e Estruturas de Dados em Go (Golang)
Algoritmos e Estruturas de Dados em Go (Golang)
Resumo:
Este livro é o seu guia para o mundo da programação eficiente em Go (Golang). Ele foi criado para desenvolvedores que desejam não apenas escrever código, mas criar aplicações rápidas, confiáveis e escaláveis. Independentemente de você estar começando sua jornada em Go ou já ter experiência, encontrará conhecimentos valiosos aqui.
O livro é estruturado no princípio "do simples ao complexo". Começaremos com o básico: entenderemos o que são algoritmos e estruturas de dados, por que sua escolha é criticamente importante para o desempenho e como o Go ajuda a escrever código conciso, porém poderoso. Em seguida, mergulharemos na prática.
O que você aprenderá neste livro:
- Estruturas de dados fundamentais: arrays, slices, listas, pilha e fila, hash tables (map), árvores (binárias, AVL, rubro-negras). Você aprenderá a escolher a estrutura correta para cada tarefa.
- Algoritmos clássicos: ordenação (rápida, por intercalação, bolha), busca (linear, binária), algoritmos em grafos (BFS, DFS, Dijkstra).
- Trabalho com memória em Go: ponteiros, garbage collection, gerenciamento de memória em goroutines. Como escrever código que não "vaza" nem fica lento.
- Concorrência e paralelismo: canais, goroutines, mutexes. Implementação de algoritmos multithread: merge sort em goroutines, travessia paralela de grafos.
- Otimização de desempenho: benchmarks, profiling (pprof), identificação de gargalos. Como medir e acelerar seu código.
- Projetos práticos: escreveremos um cache in-memory, um banco de dados simples, um parser de logs e um roteador HTTP do zero. Cada projeto é um módulo pronto para uso.
Para quem é este livro:
- Desenvolvedores Go iniciantes que desejam sistematizar conhecimentos.
- Programadores experientes migrando de outras linguagens (Python, Java, C++).
- Estudantes e professores de cursos sobre algoritmos.
- Engenheiros se preparando para entrevistas técnicas.
Cada capítulo contém teoria, diagramas ilustrativos, exemplos de código em Go e exercícios para fixação. Você não apenas lerá — escreverá dezenas de funções, estruturas e testes. Ao final do livro, você terá desenvolvido um "pensamento algorítmico": será capaz de decompor problemas complexos em etapas simples e implementá-los em Go.
O livro é escrito em linguagem clara, com foco na prática. Sem "enrolação" — apenas o que realmente será útil no trabalho. Todos os exemplos foram testados no Go versão 1.21+ e estão disponíveis no repositório.