用途:这是一个用于 Go/Golang 项目的开发技能,定位为资深/首席开发者经验,帮助在编写、审查和重构 Go 代码时应用统一的生产级约定。
主要能力:
- 项目结构:给出 cmd、internal、pkg、domain、usecase、repository、handler、migrations、docker 等目录布局,强调 internal 私有性、domain 零基础设施依赖、依赖流向 handler → usecase → repository。
- 错误处理:要求所有错误必须处理或包装传播,使用 fmt.Errorf 与 %w 包装上下文,预期失败返回 error 而非 panic,并在包级定义 sentinel 错误。
- 并发:建议共享状态用 sync.Mutex,通信优先 channel,合并前运行 go test -race ./...,使用 context.Context 传递取消。
- Docker:建议多阶段构建、非 root 用户、.dockerignore、健康检查、固定版本而非 latest。
- 库推荐:HTTP 路由 chi 或 gin,数据库 sqlx + pgx,验证 validator/v10,配置 viper 或 envconfig,日志 zerolog 或 zap,测试 testify + testcontainers。
- 调试命令:go test -race ./...、go test -cpuprofile cpu.prof -bench .、go test -memprofile mem.prof -bench .、GODEBUG=schedtrace=1000 ./app、GOTRACEBACK=all ./app。
- 代码审查与测试:检查错误处理、竞态、资源泄漏、测试、命名,采用表驱动测试。
- 性能与常见陷阱:预分配切片、strings.Builder、sync.Pool、带缓冲 channel、数据库索引,以及空指针、goroutine 泄漏、关闭 nil channel、数据竞争、切片 append 等问题。
使用方式:作为技能加载后,在 Go 项目中按上述规则生成或审查代码;具体参考文档包括 references/concurrency.md、references/docker.md、references/libraries.md、references/debugging.md、references/patterns.md。
适用场景:Go 后端服务、API、worker、数据库访问、并发程序、Docker 化部署、代码审查与测试。
限制:资料未提供安装命令、版本兼容范围、收费信息或与其他工具集成方式;内容为经验性约定,实际项目需结合具体约束调整。