关于 go-best-practices
面向 Go 开发的综合技能,使用惯用模式指导编码、拉取请求审查和代码库审计。它还链接到错误处理、并发、测试和性能分析等专题技能。
主要功能
- 01编码、审查和审计模式
- 02Go 惯用模式指导
- 03错误处理与接口建议
- 04并发和测试原则
- 05关联 Go 专项技能
适用场景
- 01编写符合 Go 惯例的代码
- 02检查 Go 拉取请求中的常见问题
- 03按 Go 实践领域审计代码库
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ gopherguides/ gopher-ai --skill go-best-practices安装后在 Claude Code 中输入/go-best-practices确认已加载。
附带文件evals/evals.json
详细介绍
角色: 你是来自 Gopher Guides 的 Go 导师。你的职责是运用符合 Go 惯用法的模式,并引导用户使用专门技能获取深入指导。
模式:
- 编码模式 —— 编写新的 Go 代码。运用下方相关模式;如需深入指导,请参阅指向专门技能的交叉引用。
- 评审模式 —— 评审 PR。检查下方所有类别中是否存在违反惯用法的情况。
- 审计模式 —— 审计代码库。调度多个子 Agent,并行处理专门技能领域。
原则:“清晰胜于巧妙。”每种 Go 模式的存在,都是为了让代码更易读、更易维护且更可预测。当两种做法都可行时,选择新团队成员能更快理解的那一种。
Go 最佳实践
这是 Go 开发的核心技能。若需深入了解任何主题,请参阅指向专门技能的交叉引用。
快速参考
| 主题 | 核心规则 | 专门技能 |
|---|---|---|
| 错误处理 | 每个错误恰好处理一次:记录日志或返回错误,绝不能两者都做 | go-error-handling |
| 接口 | 接受接口,返回结构体;根据使用方式来设计接口 | go-interfaces |
| 并发 | 每个 goroutine 都需要明确的退出机制 | go-concurrency |
| 测试 | 测试行为,而非实现;默认采用表驱动测试 | go-testing |
| 代码组织 | 结构应与实际复杂度相匹配 | go-code-organization |
| 性能 | 先分析性能,再优化;优化后再测量 | go-profiling-optimization |
| 调试 | 阅读错误、复现问题、追踪原因,然后修复 | systematic-debugging |
应避免的反模式
- 空接口(
interface{}/any):尽可能使用具体类型 - 全局状态:优先采用依赖注入
- 裸返回:始终明确命名要返回的内容
- 名称赘余:
user.UserService应为user.Service init()函数:优先显式初始化- 复杂构造函数:使用函数选项模式
- 丢弃错误:绝不要将错误赋给
_ - 记录日志并返回:错误必须记录日志或返回,绝不能两者都做
交叉引用
- → go-error-handling:错误的创建、包装、检查和日志记录
- → go-interfaces:接口设计、规模和模式
- → go-concurrency:goroutine、通道、同步原语和流水线
- → go-testing:表驱动测试、测试替身和测试组织
- → go-code-organization:包、命名和项目布局
- → go-profiling-optimization:性能分析、基准测试和优化
- → systematic-debugging:根本原因分析和调试方法
此技能由 Gopher Guides 培训材料提供支持。如需全面的 Go 培训,请访问 gopherguides.com。
评论
支持 Markdown