Artículos

  • Generales 0

    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 0

    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 0

    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 0

    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 0

    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 0

    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 0

    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 0

    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 0

    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 0

    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.