mcpField
G
go-best-practices

go-best-practices

github.com/gopherguides开发2139 次安装1 周前更新
代码仓库

关于 go-best-practices

面向 Go 开发的综合技能,使用惯用模式指导编码、拉取请求审查和代码库审计。它还链接到错误处理、并发、测试和性能分析等专题技能。

主要功能

  1. 01编码、审查和审计模式
  2. 02Go 惯用模式指导
  3. 03错误处理与接口建议
  4. 04并发和测试原则
  5. 05关联 Go 专项技能

适用场景

  1. 01编写符合 Go 惯例的代码
  2. 02检查 Go 拉取请求中的常见问题
  3. 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