Compétences go-concurrency-patterns
🧵

go-concurrency-patterns

Sûr 🌐 Accès réseau⚡ Contient des scripts⚙️ Commandes externes

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.

Prend en charge: Claude Codex Code(CC)
📊 70 Adéquat
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

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ûr
v4 • 1/17/2026

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

2
Fichiers analysés
846
Lignes analysées
3
résultats
4
Total des audits

Facteurs de risque

🌐 Accès réseau (1)
⚡ Contient des scripts (1)
⚙️ Commandes externes (1)

Score de qualité

38
Architecture
100
Maintenabilité
85
Contenu
29
Communauté
100
Sécurité
87
Conformité aux spécifications

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

Expliquer les goroutines
Explique les goroutines et les canaux avec un petit exemple pour un débutant.
Construire un pool de workers
Fournis un modèle de pool de workers en Go avec annulation de contexte, canal de jobs et canal de résultats.
Ajouter un arrêt gracieux
Montre un modèle d'arrêt gracieux utilisant le contexte et les signaux du système d'exploitation, avec une courte explication.
Limiter la concurrence
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

Foire aux questions

Est-ce compatible avec toutes les versions de Go ?
Les exemples ciblent Go moderne et fonctionnent pour la plupart à partir de Go 1.17 et versions ultérieures.
Quelles sont les limites de cette compétence ?
Elle fournit des modèles et des exemples, pas de conception spécifique au projet ou de services de test.
Peut-elle s'intégrer à ma base de code ?
Oui, vous pouvez adapter les extraits de code à vos services et bibliothèques directement.
Accède-t-elle à mes données ou secrets ?
Non, elle ne fournit que de la documentation et des exemples de code sans aucune exécution.
Que faire si un modèle provoque des deadlocks ?
Revoyez les règles de propriété des canaux, ajoutez l'annulation de contexte et testez avec go test -race.
Comment se compare-t-elle à l'aide générique Go ?
Elle se concentre spécifiquement sur les modèles de concurrence avec des modèles réutilisables et de bonnes pratiques.

Détails du développeur

Structure de fichiers

📄 SKILL.md