Go in Practice
Go in Practice
Resumen:
Introducción
El libro «Go in Practice» (autores: Matt Butcher y Matt Farina, publicado en 2016) ocupa un lugar especial entre la literatura sobre el lenguaje de programación Go. A diferencia de muchos manuales que comienzan con sintaxis y teoría, este libro sumerge al lector directamente en la resolución de problemas reales. Está dirigido a quienes ya conocen los fundamentos de Go (u otro lenguaje similar a C) y desean aprender a aplicar el lenguaje en el desarrollo diario, desde trabajar con servidores HTTP hasta pruebas y despliegue.
De qué trata el libro
«Go in Practice» consta de 8 partes, cada una dedicada a un área específica de aplicación de Go. Los autores no pierden tiempo explicando la sintaxis básica, sino que pasan directamente a técnicas prácticas. El libro cubre:
- Trabajo con línea de comandos — banderas, argumentos, archivos de configuración.
- Servidores y clientes HTTP — enrutamiento, middleware, trabajo con JSON, API REST.
- Bases de datos — conexión a SQL y NoSQL, pools de conexiones, transacciones.
- Pruebas — pruebas unitarias, pruebas tabulares, mocks, benchmarks.
- Paralelismo — gorutinas, canales, patrones de concurrencia, sync.WaitGroup.
- Empaquetado y despliegue — compilación, dependencias, Docker, CI/CD.
- Seguridad — cifrado, autenticación, protección contra inyecciones.
Para quién es este libro
El libro está dirigido a desarrolladores en práctica que ya han escrito al menos algunos programas en Go y desean profundizar sus conocimientos. Será útil para:
- Desarrolladores que migran desde otros lenguajes (Python, Java, C#) a Go.
- Ingenieros que quieren dominar el Go idiomático y las mejores prácticas.
- Líderes de equipo y arquitectos que buscan recetas probadas para construir servicios robustos.
Qué aprenderá el lector
Después de leer el libro, podrá:
- Diseñar e implementar servidores HTTP con manejo adecuado de errores.
- Trabajar con bases de datos a través del paquete estándar database/sql.
- Escribir pruebas limpias y eficientes usando el paquete integrado testing.
- Usar gorutinas y canales para crear programas concurrentes sin condiciones de carrera.
- Configurar la compilación y el despliegue de aplicaciones Go en contenedores.
- Aplicar patrones de diseño característicos de Go (por ejemplo, opciones funcionales, middleware).
Fortalezas
La principal ventaja del libro es su enfoque práctico. Cada capítulo contiene ejemplos de código que se pueden aplicar inmediatamente en un proyecto real. Los autores no solo muestran cómo funciona una función determinada, sino que explican por qué vale la pena elegir ese enfoque. Por ejemplo, en la sección sobre pruebas, demuestran cómo escribir pruebas tabulares y usar httptest para verificar manejadores HTTP — habilidades que realmente se necesitan en producción.
Otra ventaja es el énfasis en la idiomaticidad. El libro enseña a escribir código al estilo Go, evitando complejidades innecesarias. Los autores muestran cómo usar interfaces para crear abstracciones flexibles y advierten sobre errores típicos de principiantes (por ejemplo, el uso incorrecto de gorutinas).
Vale la pena destacar especialmente la sección sobre despliegue. En 2016, el tema de la contenerización apenas estaba ganando impulso, pero los autores ya incluyeron ejemplos con Docker y discusión sobre CI/CD. Esto hace que el libro siga siendo relevante incluso años después.
A quién se recomienda
Recomiendo «Go in Practice» a todos aquellos que ya dominan los fundamentos de Go y quieren pasar a crear aplicaciones completas. El libro será especialmente útil para quienes:
- Escriben microservicios o servicios web en Go.
- Se dedican a la automatización y herramientas de línea de comandos.
- Quieren aprender a probar código Go de manera correcta y eficiente.
Si recién comienza a aprender Go desde cero, es mejor leer primero «The Go Programming Language» u otros recursos introductorios. Pero si ya tiene experiencia básica y quiere llevar sus habilidades al siguiente nivel, «Go in Practice» será una excelente opción.
Recommendations
Libro de prueba editado
Rendimiento de aplicaciones TypeScript. Optimización de código y aceleración del trabajo
Rendimiento de aplicaciones Kotlin
Arquitectura de aplicaciones Swift (iOS/macOS)
C++ y Kubernetes: Creación de aplicaciones en la nube de alto rendimiento
Desarrollo a través de pruebas en Python