Concurrencia en Go (Golang): Guía Práctica
Concurrencia en Go (Golang): Guía Práctica
Resumen:
El libro «Concurrencia en Go (Golang)» es una guía práctica sobre uno de los temas más potentes y a la vez complejos del lenguaje de programación Go. Si ya domina los fundamentos de la sintaxis y desea pasar al siguiente nivel, creando aplicaciones de alto rendimiento, tolerantes a fallos y escalables, este libro se convertirá en su compañero indispensable.
La concurrencia no es solo la capacidad de ejecutar varias tareas simultáneamente. En Go está integrada en la propia arquitectura del lenguaje: gorutinas ligeras, canales eficientes para el intercambio de datos y una rica biblioteca estándar. Sin embargo, el uso incorrecto de estas herramientas puede provocar errores difíciles de detectar: condiciones de carrera, interbloqueos y fugas de recursos. Este libro le ayudará a evitar estas trampas y a aprender a pensar de forma concurrente.
Qué aprenderá en este libro:
- Gorutinas: Cómo ejecutar miles de tareas paralelas con una sobrecarga mínima, gestionar su ciclo de vida y evitar fugas.
- Canales: Organización del intercambio seguro de datos entre gorutinas, sincronización y construcción de tuberías de procesamiento.
- Patrones de concurrencia: Fan-In, Fan-Out, Worker Pool, Pipeline, Or-Channel y otras soluciones arquitectónicas probadas por el tiempo.
- Sincronización: Uso de mutexes, WaitGroup, Cond y operaciones atómicas para proteger recursos compartidos.
- Context: Gestión del tiempo de vida de las gorutinas, cancelación de operaciones y transmisión de metadatos a través del contexto.
- Pruebas: Escritura de pruebas para código concurrente, detección de condiciones de carrera con el detector integrado.
- Manejo de errores: Cómo gestionar correctamente los errores en un entorno multiproceso sin perder información sobre fallos.
- Ejemplos reales: Desde un simple rastreador web hasta un servidor de chat distribuido y un sistema de procesamiento de eventos.
Para quién es este libro:
- Desarrolladores de Go que conocen los fundamentos y quieren dominar la concurrencia.
- Programadores de otros lenguajes (Python, Java, C++) que migran a Go y desean comprender su modelo único de paralelismo.
- Ingenieros backend, especialistas en DevOps y todos aquellos que crean sistemas de alta carga y microservicios.
- Estudiantes y profesores que estudian enfoques modernos de programación paralela.
El libro está escrito en un lenguaje sencillo y claro, con gran cantidad de listados de código y ejercicios prácticos. Cada capítulo contiene ejercicios para afianzar el material. Después de leerlo, podrá diseñar e implementar con confianza sistemas concurrentes en Go que funcionen de forma rápida, estable y segura.
No importa si está creando un servidor web, un procesador de datos o una herramienta de línea de comandos: comprender la concurrencia en Go le abrirá nuevas posibilidades para la optimización y la construcción de una arquitectura elegante.
Recommendations
Código limpio en C# (.NET): Guía práctica
Seguridad de aplicaciones Kotlin: desde lo básico hasta técnicas avanzadas
Swift (iOS/macOS) para Data Science: de la teoría a la producción
Arquitectura de aplicaciones Go (Golang): desde la idea hasta la producción
Patrones de programación de juegos
Dominio de la programación para iOS 14