Artículos
-
Generales
Patrones de concurrencia en Go: worker pool, fan-out/fan-in y pipeline
Aprende a controlar la concurrencia en Go con tres patrones esenciales: worker pool para limitar goroutines activas, fan-out/fan-in para distribuir y recolectar trabajo, y pipeline para encadenar etapas de transformación. Ejemplos completos con sync.WaitGroup y errores típicos.
-
Generales
select en Go: multiplexar canales, timeout con time.After y caso default
Aprende a usar select en Go para esperar en múltiples canales a la vez: sintaxis básica, timeout con time.After, caso default para operaciones no bloqueantes, cancelación con canal done y bucles de procesado de mensajes. Con 4 ejemplos reales y el antipatrón del busy wait.
-
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.









