Навыки go-concurrency-patterns
🧵

go-concurrency-patterns

Безопасно 🌐 Доступ к сети⚡ Содержит скрипты⚙️ Внешние команды

Изучите паттерны конкурентности Go в производственной среде

Конкурентный код на Go сложно проектировать и отлаживать. Этот навык предоставляет проверенные паттерны, примеры и лучшие практики, которые вы можете быстро адаптировать.

Поддерживает: Claude Codex Code(CC)
📊 70 Адекватно
1

Скачать ZIP навыка

2

Загрузить в Claude

Перейдите в Settings → Capabilities → Skills → Upload skill

3

Включите и начните использовать

Протестировать

Использование «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

Аудит безопасности

Безопасно
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
Просканировано файлов
846
Проанализировано строк
3
находки
4
Всего аудитов

Факторы риска

🌐 Доступ к сети (1)
⚡ Содержит скрипты (1)
⚙️ Внешние команды (1)

Оценка качества

38
Архитектура
100
Сопровождаемость
85
Контент
29
Сообщество
100
Безопасность
87
Соответствие спецификации

Что вы можете построить

Проектирование конкурентных сервисов

Выберите паттерны воркера, конвейера и отмены для производственных сервисов.

Планирование корректного завершения работы

Добавьте безопасное завершение работы и обработку тайм-аутов к долго работающим процессам.

Понимание основ конкурентности

Изучите горутины, каналы и синхронизацию с понятными примерами.

Попробуйте эти промпты

Объяснение горутин
Объясните горутины и каналы с небольшим примером для начинающего.
Создание пула воркеров
Предоставьте паттерн пула воркеров на Go с ��тменой контекста, каналом задач и каналом результатов.
Добавление корректного завершения работы
Покажите паттерн корректного завершения работы с использованием контекста и сигналов ОС, с кратким объяснением.
Ограничение конкурентности
Сравните паттерны ограничения semaphore и errgroup и рекомендуйте один для задач получения API.

Лучшие практики

  • Используйте контекст для отмены и сроков во всех конкурентных операциях
  • Закрывайте каналы только со стороны отправителя, чтобы избежать паники
  • Убедитесь, что горутины имеют чёткий путь выхода и регулярно проверяют ctx.Done

Избегать

  • Использование time.Sleep для синхронизации вместо правильных примитивов
  • Закрытие каналов со стороны получателя, что вызывает панику
  • Игнорирование ctx.Done в долго работающих циклах, приводящее к утечке горутин

Часто задаваемые вопросы

Совместимо ли это со всеми версиями Go?
Примеры ориентированы на современный Go и в основном работают с Go 1.17 и новее.
Каковы ограничения этого навыка?
Он предоставляет паттерны и примеры, а не специфичный для проекта дизайн или тестирование.
Может ли он интегрироваться с моей кодовой базой?
Да, вы можете напрямую адаптировать сниппеты кода к вашим сервисам и библиотекам.
Имеет ли он доступ к моим данным или секретам?
Нет, он только предоставляет документацию и примеры кода без какого-либо выполнения.
Что если паттерн вызывает взаимные блокировки?
Просмотрите правила владения каналами, добавьте отмену контекста и протестируйте с go test -race.
Чем это отличается от общей помощи по Go?
Он фокусируется конкретно на паттернах конкурентности с переиспользуемыми шаблонами и лучшими практиками.

Сведения для разработчиков

Автор

wshobson

Лицензия

MIT

Ссылка

main

Структура файлов

📄 SKILL.md