Categoria

Golang

Testing de integração com testcontainers-go
Golang

Testing de integração com testcontainers-go

Em aplicações Go reais, testes unitários isolam funções e métodos, mas não garantem que o sistema funcione corretamente quando integrado a bancos de dados, filas de mensagens ou caches. Testes de integração preenchem essa lacuna, validando a comunicação entre componentes reais.

05/05/2026
Service discovery com Consul ou etcd
Golang 05/05/2026

Service discovery com Consul ou etcd

Em arquiteturas de microsserviços, instâncias são criadas e destruídas dinamicamente devido a escalonamento horizontal, falhas ou deploys. Endereços IP e portas mudam constantemente, tornando inviável a configuração estática. O service discovery resolve esse problema mantendo um catálogo atualizado de serviços disponíveis, permitindo que consumidores encontrem produtores sem acoplamento rígido.

Slices: o tipo de coleção fundamental do Go
Golang 05/05/2026

Slices: o tipo de coleção fundamental do Go

Em Go, slices são o tipo de coleção mais versátil e amplamente utilizado. Diferentemente dos arrays — que têm tamanho fixo definido em tempo de compilação — as slices são dinâmicas e podem crescer ou encolher conforme necessário. Enquanto [5]int é um array de exatamente 5 inteiros, []int é uma slice que pode ter qualquer tamanho.

Streaming bidirecional com gRPC
Golang 05/05/2026

Streaming bidirecional com gRPC

O gRPC oferece quatro tipos de comunicação entre cliente e servidor: unário (requisição-resposta simples), server-side streaming (cliente envia uma requisição e recebe múltiplas respostas), client-side streaming (cliente envia múltiplas requisições e recebe uma resposta) e streaming bidirecional.

Segurança: prevenção de header injection e CORS
Golang 05/05/2026

Segurança: prevenção de header injection e CORS

Headers HTTP são metadados que acompanham requisições e respostas, controlando caching, autenticação, tipo de conteúdo e muito mais. Por serem processados por servidores e navegadores, representam um vetor de ataque significativo quando manipulados indevidamente.

Select: multiplexando channels
Golang 05/05/2026

Select: multiplexando channels

Em Go, o select é uma estrutura de controle que permite que uma goroutine aguarde múltiplas operações de comunicação em canais simultaneamente. Funciona de forma análoga ao switch, mas especificamente para canais: cada case representa uma operação de envio ou recebimento em um canal. O select bloqueia até que um dos casos possa ser executado.

Server-sent events (SSE) em Go
Golang 05/05/2026

Server-sent events (SSE) em Go

Server-Sent Events (SSE) é uma tecnologia padrão do W3C que permite que servidores enviem dados para clientes web de forma unidirecional através de uma conexão HTTP persistente. Diferentemente dos WebSockets, que oferecem comunicação bidirecional, o SSE é ideal para cenários onde apenas o servidor precisa enviar atualizações para o cliente.

Receivers por valor vs por ponteiro
Golang 05/05/2026

Receivers por valor vs por ponteiro

Em Go, um receiver é um parâmetro especial que conecta uma função a um tipo, transformando-a em um método. A sintaxe básica coloca o receiver entre a palavra-chave func e o nome do método:

Reflection: inspecionando tipos em runtime
Golang 05/05/2026

Reflection: inspecionando tipos em runtime

Reflection é a capacidade de um programa examinar sua própria estrutura em tempo de execução. Em Go, isso é implementado através do pacote reflect, que permite inspecionar tipos, acessar campos de structs, modificar valores e até chamar funções dinamicamente.