Artículos

  • Generales 0

    context.Context en Go: cancelación y timeouts entre goroutines

    Aprende a coordinar goroutines en Go con context.Context: cancelación manual con WithCancel, límites de tiempo con WithTimeout y WithDeadline, y por qué el contexto va siempre como primer parámetro. Con ejemplos reales de net/http y database/sql.

  • Generales 0

    net/http en Go: crear un servidor HTTP en pocas líneas y ampliarlo

    Aprende a usar el paquete net/http de la biblioteca estándar de Go para crear servidores HTTP sin frameworks. HandleFunc, ServeMux, middleware, lectura y escritura de JSON, http.Client y timeouts explicados con ejemplos completos listos para producción.

  • Generales 0

    JSON en Go: Marshal, Unmarshal y struct tags para mapear campos

    Aprende a serializar y deserializar JSON en Go con json.Marshal y json.Unmarshal. Cubre struct tags para mapear campos, opciones omitempty y json ignorado, tipos anidados, json.Decoder para peticiones HTTP, tipos personalizados con MarshalJSON y map string interface para claves desconocidas.

  • Generales 0

    io y bufio en Go: leer y escribir ficheros de forma eficiente

    Aprende a leer y escribir ficheros en Go con los paquetes os, bufio e io. os.ReadFile, os.WriteFile, bufio.Scanner para leer línea a línea, bufio.Writer con Flush, io.Copy y filepath.Join con ejemplos reales y errores frecuentes.

  • Generales 0

    Testing en Go: go test, tabla de tests y subtests

    Aprende a usar el paquete testing de Go: ficheros _test.go, funciones TestXxx, t.Error y t.Fatal, table-driven tests, subtests con t.Run, go test -run y -v, testing HTTP con httptest, t.Helper y TestMain. Con ejemplos prácticos progresivos.

  • Generales 0

    Benchmarks en Go: medir rendimiento con testing.B

    Aprende a usar testing.B en Go para medir el rendimiento real de tu código: el bucle b.N, los flags -bench y -benchmem, cómo interpretar ns/op, B/op y allocs/op, ResetTimer para excluir el setup y pprof para profiling detallado. Cuatro ejemplos con comparativas reales.

  • Generales 0

    Generics en Go 1.18+: funciones y tipos genéricos con type constraints

    Go 1.18 introdujo los generics en el lenguaje: escribe funciones y tipos que funcionan con varios tipos sin duplicar código ni perder la seguridad del compilador. Aprende constraints como comparable, tipos genéricos, el paquete slices y cuándo elegir generics frente a interfaces.

  • Generales 0

    go vet, gofmt y staticcheck: calidad de código Go desde el terminal

    Aprende a usar gofmt, goimports, go vet y staticcheck para mantener tu código Go limpio desde el terminal. Cuatro ejemplos de errores reales detectados, configuración de golangci-lint y cómo añadir un pre-commit hook para automatizarlo todo.

  • Generales 0

    Goroutines vs threads: por qué Go escala mejor en concurrencia

    Las goroutines de Go arrancan con apenas 2-8 KB de stack frente a los 1-8 MB fijos de un OS thread. Te explicamos el scheduler M:N, el work stealing y GOMAXPROCS, y por qué puedes lanzar 100.000 goroutines en un portátil sin agotar la memoria, con cuatro ejemplos y métricas reales.

  • Generales 0

    Go vs Rust en 2026: cuándo elegir cada lenguaje para backend y sistemas

    Comparativa práctica entre Go y Rust en 2026: cuándo usar cada lenguaje según el tipo de proyecto. Rendimiento, productividad, concurrencia y casos de uso reales para microservicios, sistemas, WebAssembly y latencia crítica.