Graceful shutdown para servidor HTTP Go
Apaga el servidor HTTP Go de forma segura con signal.NotifyContext y http.Server.Shutdown, maneja timeout, WebSocket, recursos secundarios y Kubernetes.
Apaga el servidor HTTP Go de forma segura con signal.NotifyContext y http.Server.Shutdown, maneja timeout, WebSocket, recursos secundarios y Kubernetes.
Guía de uso de encoding/json en Go, desde Marshal/Unmarshal, struct tags, Encoder/Decoder hasta tipos personalizados, con pruebas y errores comunes.
Cómo construir un pool de workers en Go usando channel, sync.WaitGroup, context y errgroup para procesar de forma paralela con límites, cancelación y pruebas.
Go no tiene herencia. Este artículo explica struct embedding, cómo se promocionan los methods, las trampas de sobrescritura y cómo combinar embedding con interfaces.
Entiende el mecanismo de defer, panic, recover en Go, las trampas comunes, y cuándo deberías retornar error en lugar de panic.
Guía para usar pprof y recopilar perfiles de CPU, heap, goroutine, block, mutex en aplicaciones Go, desde servicios HTTP hasta benchmarks.
Aprende cómo funcionan los maps en Go, por qué el programa se bloquea con "concurrent map writes" y tres formas de solucionarlo: sync.Mutex, sync.RWMutex, sync.Map.
Comprende cómo los slices comparten un array subyacente, el rol de len y cap, y cómo evitar errores de sobrescritura de datos difíciles de detectar cuando usas append.
Guía para usar Go modules en la inicialización de proyectos, agregar y actualizar dependencias, gestionar major versions, replace, go.work y módulos privados.
Cómo escribir table-driven tests en Go con slice struct, t.Run, verificación de errores, ejecución paralela y comparación de struct usando go-cmp, incluyendo errores comunes.
Usa sync.WaitGroup para esperar goroutines, sync.Mutex para evitar data races y errgroup para agrupar errores, cancelación con context y limitar goroutines.
Aprende a usar type parameters, constraints, la notación ~ y tipos genéricos en Go a través de ejemplos con Order, Customer, Stack y Cache.
Utiliza ServeMux de Go 1.22 para hacer coincidir métodos, leer parámetros de ruta y devolver JSON. Tendrás una REST API completa sin necesidad de un enrutador de terceros.
Las interfaces en Go se satisfacen implícitamente. Este artículo te enseña a mantenerlas pequeñas, declararlas en el lado del consumidor, hacer tests con fakes y evitar errores de nil interface.
Cómo hacer wrap de errores con %w, verificar errores a través de la cadena con errors.Is, obtener errores personalizados con errors.As, combinar errores con errors.Join y errores comunes.
Aprende a usar context.Context en Go para controlar timeouts, deadlines, cancelar goroutines y pasar valores request-scoped de forma segura.
Las goroutine leaks no causan crash inmediato, pero consumen RAM silenciosamente con el tiempo. Este artículo expone las causas comunes, cómo detectarlas y cómo resolverlas definitivamente.
Aprende cómo Go maneja concurrencia a través de goroutine y channel, desde lo básico hasta patrones reales como WaitGroup, select y context.