go-concurrency-patterns
Изучите паттерны конкурентности Go в производственной среде
Конкурентный код на Go сложно проектировать и отлаживать. Этот навык предоставляет проверенные паттерны, примеры и лучшие практики, которые вы можете быстро адаптировать.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «go-concurrency-patterns». Suggest a pattern for processing many jobs with cancellation.
Ожидаемый результат:
- 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
Использование «go-concurrency-patterns». How do I run multiple functions in parallel and wait for all?
Ожидаемый результат:
- 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
Использование «go-concurrency-patterns». What happens if I close a channel from the receiver side?
Ожидаемый результат:
- 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
Аудит безопасности
Безопасно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.
Факторы риска
🌐 Доступ к сети (1)
⚡ Содержит скрипты (1)
⚙️ Внешние команды (1)
Оценка качества
Что вы можете построить
Проектирование конкурентных сервисов
Выберите паттерны воркера, конвейера и отмены для производственных сервисов.
Планирование корректного завершения работы
Добавьте безопасное завершение работы и обработку тайм-аутов к долго работающим процессам.
Понимание основ конкурентности
Изучите горутины, каналы и синхронизацию с понятными примерами.
Попробуйте эти промпты
Объясните горутины и каналы с небольшим примером для начинающего.
Предоставьте паттерн пула воркеров на Go с ��тменой контекста, каналом задач и каналом результатов.
Покажите паттерн корректного завершения работы с использованием контекста и сигналов ОС, с кратким объяснением.
Сравните паттерны ограничения semaphore и errgroup и рекомендуйте один для задач получения API.
Лучшие практики
- Используйте контекст для отмены и сроков во всех конкурентных операциях
- Закрывайте каналы только со стороны отправителя, чтобы избежать паники
- Убедитесь, что горутины имеют чёткий путь выхода и регулярно проверяют ctx.Done
Избегать
- Использование time.Sleep для синхронизации вместо правильных примитивов
- Закрытие каналов со стороны получателя, что вызывает панику
- Игнорирование ctx.Done в долго работающих циклах, приводящее к утечке горутин
Часто задаваемые вопросы
Совместимо ли это со всеми версиями Go?
Каковы ограничения этого навыка?
Может ли он интегрироваться с моей кодовой базой?
Имеет ли он доступ к моим данным или секретам?
Что если паттерн вызывает взаимные блокировки?
Чем это отличается от общей помощи по Go?
Сведения для разработчиков
Автор
wshobsonЛицензия
MIT
Репозиторий
https://github.com/wshobson/agents/tree/main/plugins/systems-programming/skills/go-concurrency-patternsСсылка
main
Структура файлов
📄 SKILL.md