go-concurrency-patterns
Apprendre les modèles de concurrence Go en production
Le code concurrent en Go est difficile à concevoir et déboguer. Cette compétence fournit des modèles éprouvés, des exemples et de bonnes pratiques que vous pouvez adapter rapidement.
Télécharger le ZIP du skill
Importer dans Claude
Allez dans Paramètres → Capacités → Skills → Importer un skill
Activez et commencez à utiliser
Tester
Utilisation de "go-concurrency-patterns". Suggest a pattern for processing many jobs with cancellation.
Résultat attendu:
- Use a worker pool with a buffered jobs channel
- Pass a context to stop workers on cancel
- Close results channel after all workers finish
- Add errgroup when you need early failure on error
Utilisation de "go-concurrency-patterns". How do I run multiple functions in parallel and wait for all?
Résultat attendu:
- Use sync.WaitGroup to wait for goroutines
- Add each goroutine with wg.Add(1) before spawning
- Call wg.Done() in each goroutine defer
- Block with wg.Wait() after starting all goroutines
Utilisation de "go-concurrency-patterns". What happens if I close a channel from the receiver side?
Résultat attendu:
- It causes a panic
- Only close channels from the sender side
- Or use a separate goroutine dedicated to closing
- Check if channel is open before sending
Audit de sécurité
SûrAll 58 static findings are FALSE POSITIVES. The scanner matched substrings without semantic context: 'C2' from 'close()', 'weak crypto' from 'WaitGroup', 'dynamic import' from Go import statements, 'backtick execution' from markdown code formatting, and 'path traversal' from code comments. This is a pure documentation skill containing only markdown and JSON files with Go code examples. No executable code, no network calls beyond documentation links, no filesystem access beyond its own files.
Facteurs de risque
🌐 Accès réseau (1)
⚡ Contient des scripts (1)
⚙️ Commandes externes (1)
Score de qualité
Ce que vous pouvez construire
Concevoir des services concurrents
Sélectionnez les modèles de workers, de pipelines et d'annulation pour les services de production.
Planifier des arrêts gracieux
Ajoutez une gestion sécurisée de l'arrêt et des timeouts aux processus de longue durée.
Comprendre les bases de la concurrence
Apprenez les goroutines, les canaux et la synchronisation avec des exemples clairs.
Essayez ces prompts
Explique les goroutines et les canaux avec un petit exemple pour un débutant.
Fournis un modèle de pool de workers en Go avec annulation de contexte, canal de jobs et canal de résultats.
Montre un modèle d'arrêt gracieux utilisant le contexte et les signaux du système d'exploitation, avec une courte explication.
Compare les modèles de limitation par sémaphore et errgroup et recommande l'un d'eux pour les tâches de récupération d'API.
Bonnes pratiques
- Utilisez le contexte pour l'annulation et les délais dans toutes les opérations concurrentes
- Fermez les canaux uniquement du côté de l'expéditeur pour éviter les panics
- Assurez-vous que les goroutines ont un chemin de sortie clair et vérifient régulièrement ctx.Done
Éviter
- Utiliser time.Sleep pour la synchronisation au lieu de primitives appropriées
- Fermer les canaux du côté du récepteur ce qui provoque des panics
- Ignorer ctx.Done dans les boucles de longue durée entraînant des fuites de goroutines