Categoria

Golang

Trabalhando com arquivos e o pacote os
Golang

Trabalhando com arquivos e o pacote os

O pacote os da biblioteca padrão do Go fornece uma interface multiplataforma para operações do sistema operacional, incluindo manipulação de arquivos e diretórios. Vamos começar com as operações fundamentais.

05/05/2026
Tracing distribuído com OpenTelemetry
Golang 05/05/2026

Tracing distribuído com OpenTelemetry

Em arquiteturas de microsserviços, uma única requisição do usuário pode atravessar dezenas de serviços distintos. Sem tracing distribuído, diagnosticar problemas de latência ou falhas em cascata torna-se uma tarefa quase impossível. O tracing distribuído permite rastrear o caminho completo de uma requisição através de múltiplos serviços, fornecendo visibilidade sobre cada etapa do processamento.

Structs aninhadas e campos anônimos
Golang 05/05/2026

Structs aninhadas e campos anônimos

Structs em Go são tipos de dados compostos que agregam campos nomeados de diferentes tipos. Elas são fundamentais para modelar dados estruturados, permitindo criar tipos personalizados que representam entidades do mundo real.

Structs: modelando dados sem classes
Golang 05/05/2026

Structs: modelando dados sem classes

Go não possui classes. Essa afirmação pode soar estranha para quem vem de linguagens como Java, Python ou C#, mas é uma escolha deliberada de design. Em vez do paradigma clássico de orientação a objetos com herança, polimorfismo por subclasse e encapsulamento rígido, Go oferece structs — agregados de dados que podem ser combinados com métodos para criar comportamentos.

Subtests e helpers de teste
Golang 05/05/2026

Subtests e helpers de teste

Subtests são uma funcionalidade poderosa introduzida no Go 1.7 que permite organizar testes de forma hierárquica dentro de uma única função de teste. Em vez de criar múltiplas funções TestXxx para cada cenário, você pode agrupar casos relacionados usando t.Run().

Switch em Go: sem fallthrough por padrão
Golang 05/05/2026

Switch em Go: sem fallthrough por padrão

Em Go, a estrutura switch é uma das ferramentas mais elegantes para controle de fluxo condicional. Diferente de linguagens como C, C++ ou Java, o switch em Go não exige a declaração explícita de break após cada case. A execução não "cai" automaticamente para o próximo caso — a menos que você explicitamente queira isso.

Sync package: Mutex, RWMutex e WaitGroup
Golang 05/05/2026

Sync package: Mutex, RWMutex e WaitGroup

O pacote sync é um dos pilares da programação concorrente em Go, oferecendo primitivas de sincronização de baixo nível para coordenar o acesso a recursos compartilhados entre goroutines. Enquanto o modelo de concorrência do Go é frequentemente associado aos canais (CSP), o pacote sync resolve problemas específicos onde a exclusão mútua e a sincronização de estado são necessárias.

Table-driven tests
Golang 05/05/2026

Table-driven tests

Table-driven tests são uma técnica de teste onde os casos de teste são definidos como uma lista (tabela) de structs, cada um contendo entradas, saídas esperadas e um nome descritivo. Em Go, essa abordagem tornou-se um padrão amplamente adotado, sendo recomendada até mesmo na documentação oficial da linguagem.

Testes com o pacote testing
Golang 05/05/2026

Testes com o pacote testing

O pacote testing é a ferramenta nativa do Go para escrever testes unitários, de benchmark e exemplos executáveis. Sua estrutura é minimalista e poderosa, seguindo convenções específicas que facilitam a automação e integração com ferramentas de CI/CD.

Testing de HTTP handlers com httptest
Golang 05/05/2026

Testing de HTTP handlers com httptest

O pacote net/http/httptest é uma ferramenta essencial do ecossistema Go para testar handlers HTTP sem a necessidade de iniciar um servidor real. Ele fornece utilitários que permitem simular requisições HTTP e capturar respostas de forma eficiente, tornando os testes rápidos, determinísticos e isolados.