Artículos
-
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.
-
Generales
Generics en Go 1.18: type parameters, constraints y funciones genéricas
Go 1.18 introdujo los genéricos con type parameters entre corchetes. Aprende a usar constraints como any, comparable y constraints.Ordered, define tus propios constraints con interfaces de unión y escribe funciones Map, Filter y Reduce genéricas, además de structs tipados como una pila sin in...
-
Generales
Generics avanzados en Go: paquetes slices, maps, cmp y patrones con constraints
Aprende a usar los paquetes slices, maps y cmp incorporados en Go 1.21, define constraints propios con el operador ~ y uniones de tipos, combina métodos con type sets en una misma interfaz y evita el error clásico del type switch sobre parámetros de tipo.
-
Generales
go:embed en Go: incluir ficheros estáticos en el binario y go generate
Aprende a usar //go:embed en Go 1.16 para incluir ficheros, plantillas HTML y assets dentro del binario sin dependencias externas. Ejemplos reales de servidor web self-contained, templates embebidos y configuración. También cubre go:generate para automatizar la generación de código con string...
-
Generales
Go modules avanzado: workspaces, replace, retract y módulos privados
Más allá de go get y go.mod básico: workspaces con go work para múltiples módulos locales sin hacks de replace, cómo parchear dependencias de terceros, retirar versiones publicadas con retract y configurar módulos privados con GOPRIVATE y un proxy Athens.
-
Generales
Build tags, cross-compilation y ldflags en Go: compilar para cualquier plataforma
Go compila para cualquier plataforma desde tu propia máquina. Aprende a usar GOOS y GOARCH para cross-compilar, build tags para controlar qué código entra en cada build, -ldflags para inyectar la versión y CGO_ENABLED=0 para generar binarios estáticos sin dependencias C.
-
Generales
Cobra y Viper en Go: construir CLIs con subcomandos y gestión de configuración
Aprende a construir CLIs en Go con Cobra y Viper: subcomandos con AddCommand(), flags persistentes, configuración desde fichero YAML y variables de entorno con AutomaticEnv(). Incluye el antipatrón de MarkFlagRequired con Viper y cómo evitarlo usando RunE.









