A Semana Go - Edição Nº 161
Nesta edição, celebramos a nobre tradição de redescobrir fundamentos com entusiasmo de quem encontrou ouro. Temos papers clássicos reimplementados, revelações sobre performance que fariam seu professor de sistemas distribuídos suspirar e duas bibliotecas que resolvem frustrações que você nem sabia que tinha até perceber que sempre teve. Além disso, o Advent of Code anuncia mudanças que dividirão opiniões entre “finalmente” e “era isso que fazia o evento especial”.
Links
MapReduce em Go
Jitesh apresenta uma implementação didática do paper original sobre MapReduce do Google. O artigo percorre toda a arquitetura (Master, Workers e Tasks) com exemplos claros de como as fases Map e Reduce funcionam na prática. Excelente material para quem quer entender sistemas distribuídos construindo um do zero, com boa cobertura de concorrência e de mutexes em Go.
Profiling de Programas Go
Um estudo de caso prático sobre otimização de uma API que serve imagens. O autor combina cgroups para limitar CPU, k6 para testes de carga e pprof para identificar gargalos. O resultado foi um ganho de 100x na capacidade por meio de caching. O artigo demonstra bem o workflow de profiling iterativo: medir, identificar o problema, otimizar, repetir.
Testando subprocessos com re-exec
Redowan explora o padrão de re-exec para testar código que spawna subprocessos. A técnica, originada nos testes da stdlib, permite que o binário de teste se reexecute como um subprocesso controlado, emulando o comportamento do comando real. Uma alternativa elegante entre mocks frágeis e testes de integração lentos.
Minimizando escopo de identificadores
Fillmore Labs discute boas práticas de escopo de variáveis em Go, com referências aos style guides do Google e da Uber. O artigo apresenta o scopeguard, um linter que identifica declarações que podem ser movidas para escopos mais restritos. Inclui discussão sobre trade-offs, com shadowing, e sobre quando escopos mais amplos são aceitáveis.
RegreSQL: Testes de regressão para postgres
Uma ferramenta renovada para testar queries SQL de forma sistemática. O RegreSQL verifica tanto a corretude quanto a performance, detectando anti-patterns como sequential scans e nested loops problemáticos. O artigo aborda o sistema de fixtures em YAML para dados de teste reproduzíveis e a integração com pipelines de CI/CD.
Advent of Code 2025
O evento anual de puzzles de programação começa em 1º de dezembro, agora com 12 puzzles, em vez dos tradicionais 25. O leaderboard global foi descontinuado. Uma boa oportunidade para praticar Go com problemas algorítmicos de dificuldade progressiva.
goyek
Biblioteca de automação de tarefas como alternativa a Make, Mage e Task. Tasks são definidas como código Go puro, sem dependências externas. API inspirada em testing e cobra facilitando o debugging e a integração com o ecossistema Go.
hashtriemap
Brad Fitzpatrick fez um export do tipo genérico HashTrieMap interno do Go, que implementa sync.Map por baixo dos panos. Permite usar a estrutura de dados com type safety completo enquanto a issue #71076 não adiciona isso à stdlib oficialmente.


