Artículos
-
Generales
sync en Go: Mutex, RWMutex, WaitGroup, Once, Pool y Map para concurrencia segura
El paquete sync de Go resuelve las carreras de datos entre goroutines. Aprende a usar Mutex, RWMutex, WaitGroup, Once, Pool y sync.Map con ejemplos reales, y evita el error clásico de copiar un Mutex por valor.
-
Generales
context en Go: cancelación, timeout, valores y propagación entre goroutines
Guía práctica del paquete context de Go: cómo usar context.WithCancel, WithTimeout y WithValue para propagar cancelaciones y datos entre goroutines, con ejemplos reales en servidores HTTP y base de datos.
-
Generales
net/http en Go: construir un servidor HTTP con handlers, middleware y routing
Aprende a construir un servidor HTTP en Go con net/http sin dependencias externas: handlers, ServeMux para routing, middleware de logging y CORS encadenado, respuestas JSON con json.NewEncoder, ficheros estáticos y graceful shutdown con http.Server.Shutdown.
-
Generales
Cliente HTTP en Go: http.Client, Transport, timeouts y peticiones con contexto
El paquete net/http de Go incluye todo lo que necesitas para hacer peticiones HTTP: desde un simple Get hasta clientes con timeout, contexto de cancelación y Transport personalizado. Aprende a configurar http.Client correctamente y evita los errores más habituales.
-
Generales
io y bufio en Go: Reader, Writer, Scanner, pipes y composición de streams
Aprende a manejar io.Reader, io.Writer, io.Copy, io.ReadAll y io.LimitReader en Go. Cómo usar bufio.Scanner para leer línea a línea, bufio.NewWriter con Flush(), io.Pipe para pasar streams entre goroutines y composición de transformaciones con gzip. Con 4 ejemplos reales.
-
Generales
encoding/json en Go avanzado: custom marshalers, omitempty, embedded structs y streaming
Guía práctica de encoding/json en Go: tags omitempty y json:-, embedded structs, custom marshalers, json.RawMessage para payloads dinámicos, json.Number para enteros grandes y streaming con json.Encoder/Decoder. Con ejemplos reales de la API de GitHub.
-
Generales
database/sql en Go: conectar a BD, queries, Scan, transacciones y pool de conexiones
El paquete database/sql de Go te da acceso a bases de datos relacionales con drivers intercambiables. Aprende a usar sql.Open(), QueryContext(), rows.Scan(), transacciones con BeginTx() y el pool de conexiones con ejemplos reales de CRUD sobre PostgreSQL.
-
Generales
Errores avanzados en Go: fmt.Errorf %w, errors.Is, errors.As y errores personalizados
Aprende a manejar errores en Go 1.13+ de forma idiomática: envuelve errores con fmt.Errorf %w, recorre la cadena con errors.Is y errors.As, crea tipos propios con Unwrap y combina múltiples errores con errors.Join desde Go 1.20.
-
Generales
Testing avanzado en Go: table-driven tests, subtests, benchmarks y testify
Aprende a estructurar tests de Go con table-driven tests y t.Run, paraleliza con t.Parallel, mide rendimiento con benchmarks y b.N, y simplifica aserciones con testify. Incluye t.Helper, t.Cleanup, testify/mock y testing/fstest con ejemplos reales.
-
Generales
Fuzzing en Go 1.18+: go test -fuzz, corpus y encontrar bugs automáticamente
El fuzzing nativo de Go, disponible desde la versión 1.18, genera miles de inputs mutados para encontrar crashes en parsers, deserializadores y validadores. Aprende la sintaxis de FuzzXxx, f.Add() y f.Fuzz() con cuatro ejemplos reales: fechas, CSV, monedas y JSON.









