go-dev skill
İsimlendirme kuralları, hata yönetimi, eşzamanlılık (concurrency) desenleri ve test pratikleri dahil olmak üzere Go geliştirme standartlarını uygular.
- GitHub yıldızları
- 1.061
- Dosyalar
- 3
- Son commit
- 26 Ağu 2026
- Lisans
- —
- İzin verilen araçlar
- —
go-dev skill ne işe yarar?
go-dev bir agent skill'dir. İsimlendirme kuralları, hata yönetimi, eşzamanlılık (concurrency) desenleri ve test pratikleri dahil olmak üzere Go geliştirme standartlarını uygular.
Özet, skill'in SKILL.md dosyasından oluşturuldu.
go-dev skilli hakkında
Bu SKILL, endüstri standartlarına sıkı sıkıya bağlı kalarak yüksek kaliteli Go kod tabanları sürdürmenizi sağlar. Geliştiriciler; .go, go.mod ve go.sum dosyaları genelinde belirli isimlendirme kurallarını, hata yönetimi desenlerini ve eşzamanlılık güvenliğini zorunlu kılmak için bu yeteneği kullanabilirler. Bir agent bu SKILL'i yüklediğinde, kodun Effective Go ve Uber Go kılavuzlarına uygun olmasını sağlayan uzman bir incelemeci gibi hareket eder.
SKILL; formatlama için goimports, statik analiz için go vet ve kapsamlı kontroller için golangci-lint gibi temel araç zinciri komutlarını entegre eder. Ayrıca, race detection ve coverage bayraklarıyla birlikte go test kullanarak test protokollerini yönetir. Agent, bu kuralları uygulayarak işlenmemiş hatalar, hatalı goroutine yaşam döngüleri veya döngüler içinde verimsiz string birleştirme gibi yaygın hatalardan kaçınan kodlar üretir. Projelerin cmd, internal ve pkg gibi standart dizinlere yapılandırılmasına yardımcı olurken, util veya base gibi anlamsız paket isimlerinin kullanımını engeller.
Bir agent bununla neler yapabilir
- 1Eşzamanlılık sorunlarını tespit edinGoroutine'lerin context ile yönetildiğini doğrulayın ve test sırasında veri yarışlarını (data races) kontrol edin.
Skill'in SKILL.md dosyasından yazılmıştır. Her kullanım durumu oradaki bir alıntı ile kontrol edilir.
go-dev skill nasıl kurulur
Her komut, skill klasörünü istemcinin skills dizinine kopyalar. Yüklemek için istemciyi yeniden başlatın veya yeni bir oturum başlatın.go-dev skill'ini Eklenti uygulamasına kur
/plugin marketplace add doccker/cc-use-exp /plugin install cc-use-exp@cc-use-exp
go-dev skill'ini Claude Code uygulamasına kur
~/.claude/skills/go-dev/SKILL.md
$ npx degit doccker/cc-use-exp/skills/go-dev ~/.claude/skills/go-devgo-dev skill'ini Claude Code (project) uygulamasına kur
.claude/skills/go-dev/SKILL.md
$ npx degit doccker/cc-use-exp/skills/go-dev .claude/skills/go-devgo-dev skill'ini Codex uygulamasına kur
~/.agents/skills/go-dev/SKILL.md
$ npx degit doccker/cc-use-exp/skills/go-dev ~/.agents/skills/go-devgo-dev skill'ini Gemini CLI uygulamasına kur
~/.gemini/skills/go-dev/SKILL.md
$ npx degit doccker/cc-use-exp/skills/go-dev ~/.gemini/skills/go-devgo-dev skill'ini Claude.ai uygulamasına kur
npx degit doccker/cc-use-exp/skills/go-dev go-dev && zip -r go-dev.zip go-dev # claude.ai → Customize → Skills → + → Create skill → Upload a skill → go-dev.zip
Otomatik kontroller
Çalıştırıldı 15 Kas 2026Tam rapor →Henüz doğrulanmadı. Bir skill için 80 puan, ciddi bulgu olmaması ve kontrol için yeterli veri gerekir. Kontroller nasıl çalışır · Daha fazla puan için nelerin düzeltileceği
- Kaynak deposu bağlantılı ve erişilebilirdoccker/cc-use-exp/skills/go-dev is public and reachablegithub.com/doccker/cc-use-exp/tree/HEAD/skills/go-dev ↗Geçti
- Açık kaynak lisansı (OSI)No licenseBulgu
- Son bir yıl içinde commit veya sürüm mevcutLast commit 2026-08-26github.com/doccker/cc-use-exp/commits ↗Geçti
- Betiklerde indir-çalıştır veya kimlik bilgisi hırsızlığı yokNo scripts in the skill folderGeçti
- SKILL.md içinde gizli talimat yokNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/doccker/cc-use-exp/blob/HEAD/skills/go-dev/SKILL. ↗Geçti
- Önceden izin verilen araçlar sınırlıNo pre-approved tools; the agent asks before using onegithub.com/doccker/cc-use-exp/blob/HEAD/skills/go-dev/SKILL. ↗Geçti
- SKILL.md, Agent Skills biçimine uyuyorthe description does not say when to use the skill; the description is only 30 charactersgithub.com/doccker/cc-use-exp/blob/HEAD/skills/go-dev/SKILL. ↗Bulgu
SKILL.md
GitHub'da görüntüleGo 开发规范
参考来源: Effective Go、Go Code Review Comments、uber-go/guide
工具链
goimports -w . # 格式化并整理 import
go vet ./... # 静态分析
golangci-lint run # 综合检查
go test -v -race -cover ./... # 测试(含竞态检测和覆盖率)
命名约定
| 类型 | 规则 | 示例 |
|---|---|---|
| 包名 | 小写单词,不用下划线 | user, orderservice |
| 变量/函数 | 驼峰命名,缩写词一致大小写 | userID, HTTPServer |
| 常量 | 导出用驼峰,私有可驼峰或全大写 | MaxRetryCount |
| 接口 | 单方法用方法名+er | Reader, Writer |
禁止: common, util, base 等无意义包名
import 顺序
import (
"context" // 标准库
"fmt"
"github.com/gin-gonic/gin" // 第三方库
"project/internal/model" // 项目内部
)
错误处理
必须处理错误,不能忽略:
// ✅ 好:添加上下文
if err != nil {
return fmt.Errorf("failed to query user %d: %w", userID, err)
}
// ❌ 差:忽略错误
result, _ := doSomething()
错误包装: 使用 %w 保留错误链,用 errors.Is() / errors.As() 检查
并发编程
基本原则:
- 优先使用 channel 通信
- 启动 goroutine 前考虑:谁来等待它?怎么停止它?
- 使用
context.Context控制生命周期
// ✅ 好:使用 context 控制
func process(ctx context.Context) error {
done := make(chan error, 1)
go func() { done <- doWork() }()
select {
case err := <-done:
return err
case <-ctx.Done():
return ctx.Err()
}
}
数据竞争: 使用 go test -race 检测
测试规范
// 表驱动测试
func TestAdd(t *testing.T) {
tests := []struct {
name string
a, b int
expected int
}{
{"positive", 1, 2, 3},
{"zero", 0, 0, 0},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := Add(tt.a, tt.b)
if got != tt.expected {
t.Errorf("Add(%d, %d) = %d, want %d", tt.a, tt.b, got, tt.expected)
}
})
}
}
性能优化
| 陷阱 | 解决方案 |
|---|---|
| 循环中拼接字符串 | 使用 strings.Builder |
| 未预分配 slice | make([]T, 0, cap) |
| N+1 查询 | 批量查询 + 预加载 |
| 无限制并发 | 使用 semaphore 或 worker pool |
| Raw SQL 别名用了保留字 | 避免 year_month/order/status/rank 等 MySQL 保留字做别名 |
# 性能分析
go test -cpuprofile=cpu.prof -bench=.
go tool pprof cpu.prof
项目结构
project/
├── cmd/ # 可执行文件入口
├── internal/ # 私有代码
│ ├── handler/
│ ├── service/
│ ├── repository/
│ └── model/
├── pkg/ # 公共代码
├── go.mod
└── go.sum
详细参考
| 文件 | 内容 |
|---|---|
references/go-style.md |
命名约定、错误处理、并发、测试、性能 |
references/date-time.md |
日期加减、账期计算、AddDate 溢出处理 |
📋 本回复遵循:
go-dev- [具体章节]
Bu becerideki dosyalar
3go-dev skill soruları
go-dev skill'ini Claude Code uygulamasına nasıl kurarım?
npx degit doccker/cc-use-exp/skills/go-dev ~/.claude/skills/go-dev komutunu çalıştırın. Claude Code, skill'leri ~/.claude/skills (tüm projeler) veya .claude/skills (tek proje) konumundan yükler ve açıklaması görevle eşleştiğinde skill'i kullanır.
go-dev skill'ini hangi istemciler kullanabilir?
Agent Skills biçimini okuyan her istemci: Claude Code, Codex, Gemini CLI ve claude.ai (ZIP olarak yükleyin). Skill içindeki betikler yalnızca istemcinin kod çalıştırmaya izin verdiği yerlerde çalışır.