Artículos
-
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.
-
Generales
Zap en Go: logging estructurado de alto rendimiento con campos tipados
Aprende a usar go.uber.org/zap para logging estructurado de alto rendimiento en Go. Cubre zap.Logger y SugaredLogger, campos tipados, logger.With() para añadir contexto fijo, zapcore para salida múltiple y el antipatrón de fmt.Sprintf que destroza el rendimiento.
-
Generales
Profiling en Go: pprof, benchmarks, escape analysis y optimización de memoria
Aprende a usar pprof, benchmarks y escape analysis en Go para encontrar cuellos de botella, reducir allocations y aliviar la presión del GC. Ejemplos con sync.Pool, strings.Builder, runtime/pprof y análisis de qué escapa al heap.









