Estudos e anotações sobre desenvolvimento de software.
Nil map ou map vazio? Zero value, ordem de iteração e concorrência em Go
Como o zero value de um map se comporta em Go, por que a ordem de iteração é aleatória de propósito, e como sincronizar acesso concorrente sem escolher a ferramenta errada.
Array ou slice? Capacidade, crescimento e as armadilhas do append
Como slices funcionam por dentro em Go: o cabeçalho de três palavras, a diferença entre len e cap, como o append faz o slice crescer, e por que dois slices podem enxergar o mesmo array sem você perceber.
Stack ou heap? Entendendo o escape analysis do Go
Como o compilador do Go decide se um valor fica na stack ou vai para o heap: o que é escape analysis, como ler a saída do -gcflags=-m, o que faz um valor escapar e o que realmente vale otimizar.
Por que Go copia tudo? Zero Values e Pointer Semantics
Entenda zero values, value semantics e pointer semantics em Go: o que são, quando copiar por valor ou passar por ponteiro e como escolher, com exemplos práticos.