Artículos

  • Generales 0

    range en Go: iterar slices, maps, strings y canales de forma idiomática

    El operador range en Go permite recorrer slices, maps, strings y canales de forma idiomática. Aprende a usarlo bien, evita el error más común con structs y descubre cómo recorre runas Unicode en vez de bytes al trabajar con cadenas de texto.

  • Generales 0

    Paquetes en Go: imports, visibilidad y cómo organizar el código

    Cómo funciona el sistema de paquetes de Go: exportar con mayúscula, import paths con módulos, alias, blank imports, init(), y cómo estructurar un proyecto con cmd/, internal/ y pkg/. Incluye errores reales del compilador y por qué Go no permite ciclos de importación.

  • Generales 0

    Go Modules: go.mod, go.sum y gestión de dependencias en 2026

    Aprende a gestionar dependencias en Go con el sistema de módulos: go.mod, go.sum, go get y go mod tidy. Versiones principales, directiva replace, workspaces con go.work y configuración de repositorios privados con GOPRIVATE.

  • Generales 0

    Goroutines en Go: lanzar tareas concurrentes con go y cómo funcionan

    Las goroutines son funciones que Go ejecuta de forma concurrente con la palabra clave go. Aprende cómo funciona el scheduling M:N, por qué puedes lanzar miles sin problema, qué son las race conditions y cómo detectarlas con go run -race.

  • Generales 0

    Canales en Go: enviar, recibir, close y canales direccionales

    Aprende a usar canales en Go (chan): crear con make, enviar y recibir valores, buffered channels, cerrar con close(), recorrer con range, canales unidireccionales y el patrón pipeline con ejemplos reales.

  • Generales 0

    select en Go: esperar en múltiples canales y el caso por defecto

    El select en Go bloquea hasta que uno de sus canales está listo y ejecuta ese case. Aprende a usar el case default para no bloquear, timeout con time.After, fan-in para combinar canales, done channel para cancelar goroutines y cómo manejar la prioridad entre cases.

  • Generales 0

    sync.WaitGroup en Go: esperar a que terminen todas las goroutines

    sync.WaitGroup es la forma estándar de esperar a que un grupo de goroutines termine en Go: Add para fijar el contador, Done en cada goroutine y Wait para bloquear hasta cero. Incluye el error del Add dentro de la goroutine, fan-out, comparativa con canales y errgroup con manejo de errores.

  • Generales 0

    sync.Mutex y RWMutex en Go: proteger datos compartidos entre goroutines

    Aprende a proteger datos compartidos entre goroutines con sync.Mutex y RWMutex en Go. Cubre Lock y Unlock, defer para evitar deadlocks, lectores simultáneos con RWMutex, sync.Once para inicialización thread-safe y operaciones atómicas con sync/atomic.

  • 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.