go-concurrency-patterns
por wshobsonDomina la concurrencia en Go con goroutines, canales, primitivas de sincronización y context. Útil para construir aplicaciones concurrentes en Go, implementar pools de trabajadores o depurar condiciones de carrera.
Descripción general
¿Qué es go-concurrency-patterns?
go-concurrency-patterns es una habilidad práctica para dominar la concurrencia en aplicaciones Go (Golang). Cubre patrones esenciales usando goroutines, canales, primitivas de sincronización como sync.Mutex y sync.WaitGroup, y gestión de contextos para cancelaciones y plazos. Esta habilidad está diseñada para desarrolladores backend y de sistemas que necesitan construir, depurar u optimizar programas concurrentes en Go.
¿Quién debería usar esta habilidad?
- Desarrolladores Go que construyen aplicaciones concurrentes o paralelas
- Ingenieros que implementan pools de trabajadores, pipelines o cierres ordenados
- Equipos que solucionan condiciones de carrera o gestionan ciclos de vida de goroutines
- Cualquier persona que busque buenas prácticas para primitivas de concurrencia en Go
Problemas que resuelve
- Ejecución concurrente segura y eficiente en Go
- Comunicación entre goroutines usando canales
- Gestión de sincronización y evitación de condiciones de carrera
- Implementación de cancelaciones y tiempos de espera con context
Cómo usar
Pasos de instalación
-
Añade la habilidad a tu agente o proyecto con:
npx skills add https://github.com/wshobson/agents --skill go-concurrency-patterns -
Revisa la documentación principal en
SKILL.mdpara una visión guiada de los patrones de concurrencia, incluyendo ejemplos de código y explicaciones. -
Explora archivos relacionados como
README.md,AGENTS.mdymetadata.jsonpara contexto adicional, referencias y notas de integración. Revisa cualquier carpetarules/,resources/oscripts/para materiales de apoyo.
Adaptando los patrones
- Usa los patrones proporcionados como referencia para tus propios proyectos en Go. Adapta los ejemplos para que encajen con la arquitectura y requisitos de tu aplicación.
- Enfócate en las primitivas centrales: goroutines para concurrencia, canales para comunicación y context para gestión de ciclos de vida.
- Aplica herramientas de sincronización como
sync.Mutexysync.WaitGrouppara coordinar la ejecución de goroutines y evitar condiciones de carrera.
Cuándo usar go-concurrency-patterns
- Construyendo servicios backend escalables o microservicios en Go
- Implementando pools de trabajadores, pipelines o tareas de procesamiento concurrente
- Gestionando cierres ordenados y limpieza de recursos
- Depurando o previniendo condiciones de carrera en código Go
Preguntas frecuentes
¿Qué archivos debo leer primero?
Comienza con SKILL.md para una visión completa. Luego revisa README.md y AGENTS.md para detalles de integración y uso avanzado.
¿Incluye esta habilidad ejemplos de código ejecutables?
Sí, la documentación incluye fragmentos prácticos que demuestran patrones clave de concurrencia en Go. Adapta estos ejemplos a tus propios proyectos según sea necesario.
¿Es go-concurrency-patterns adecuado para principiantes?
La habilidad es adecuada para desarrolladores Go con conocimientos básicos del lenguaje que quieran profundizar en concurrencia. Ofrece explicaciones conceptuales y ejemplos prácticos.
¿Dónde puedo encontrar más recursos?
Explora las carpetas resources/ y references/ del repositorio para lecturas adicionales y temas avanzados de concurrencia.
¿Cómo soluciono problemas?
Consulta los ejemplos y explicaciones en SKILL.md para identificar errores comunes. Usa el detector de condiciones de carrera incorporado en Go y las herramientas de gestión de contextos para depurar.
Abre la pestaña de Archivos en el repositorio para ver el árbol completo, incluyendo scripts auxiliares y referencias anidadas.
