20万星仓库里的Go惯用法,Claude Code现在帮你写地道Go代码

写 Go 代码几年了,你有没有这种感觉——写出来的东西自己看得懂,但让同事看就眉头一皱?或者说,调并发的时候 goroutine leak 了还不知道从哪查?

今天推荐一个我最近在用的 Skill:golang-patterns,来自 GitHub 20 万星的 affaan-m/ECC 仓库。它不是什么新框架,而是把 Go 社区多年沉淀下来的「惯用法」整理成了一份可执行的设计规范——直接喂给 Claude Code,让 AI 帮你写出地道的 Go 代码。

它到底装了什么?

这个 Skill 覆盖了写 Go 最核心的几个场景:

  • Functional Options 模式——灵活的配置构造器,避免巨型构造函数
  • 小接口原则——在消费端定义接口,而不是实现端,Go proverb 说的「Accept interfaces, return structs」
  • 依赖注入——通过构造函数显式注入,不搞全局状态
  • 并发安全——Worker Pool、errgroup、context 传播、goroutine leak 防范
  • 错误处理规范——fmt.Errorf + %w 链式包装、Sentinel errors、errors.Is / errors.As 判别
  • 包组织规范——cmd/internal/pkg 怎么划,什么名字不该用

为什么有用?

Go 的设计哲学是「做一件事做好一件」,但很多团队写出来的代码还是 Java味儿——巨大的 interface{}、无处不在的 init()、goroutine 开了不等待。这些问题单靠 Code Review 很难覆盖,因为人的注意力有限。

这个 Skill 的价值在于:AI 在你写代码的时候就介入,而不是等 PR 了再说。它会在生成 .go 文件、编辑 go.mod、设计包边界、review 代码的时候自动激活,把 Go proverb 内化成肌肉记忆。

实际效果怎么样?

我让 Claude Code 写一个 HTTP server 的骨架,传入了这个 Skill。它自动用了 Functional Options 来配置 server 参数,接口定义在消费端而非实现端,错误处理用了 %w 包装而不是 _ = 忽略,context 作为第一个参数传递——全是教科书级别的操作,没有一处是 AI 常见的「糊弄写法」。

这个 Skill 的激活触发词也很宽泛:编辑或新建 .go 文件、编辑 go.mod、设计包边界、review 或重构 Go 代码、配置 linter gate——基本上覆盖了日常开发的所有场景。

怎么装?

一行命令搞定:

npx skills add https://github.com/affaan-m/ECC --skill golang-patterns

装完之后每次开新的 Claude Code 会话,它就自动加载。不需要记什么特殊指令,AI 会根据上下文自己判断什么时候该用。

谁适合用?

如果你写 Go,不管是写新服务还是维护老项目,这个 Skill 都值得装。它不会教你语法——那是基础——它教你的是「写出让同事和 future-you 都能一口气读懂的 Go 代码」的那种工程纪律。

Star 数 205k 的仓库里,质量有保证。建议直接加到你的 Claude Code 全局 skills 目录里。

GitHub:https://github.com/affaan-m/ECC


GitHub: https://github.com/affaan-m/ECC

评论区

0 条评论

登录后可评论。

江望 1799 阅读