正在打开每日关注
正在打开每日关注
go-modern-guidelines 按项目 Go 版本约束,为多种编码 Agent 提供现代 Go 写法指南。
🐹 JetBrains 官方出手,专治 AI 写出一手过时 Go 代码:go-modern-guidelines 装进 Claude Code、Codex、Cursor 就能用。 GitHub 上 3400 多 star,JetBrains 官方仓库,最近还上了 GitHub Trending。 让 AI 写 Go,经常拿回来一堆老写法:手写 if-else 比大小,for 循环查切片里有没有某个值,一层层判 nil。代码能跑,但放在今天的 Go 里就是过时的。原因也不复杂,模型训练数据有滞后,旧写法在数据里出现得又更多。 go-modern-guidelines 给 agent 一套现代 Go 规范:比大小用 max(a, b),查包含用 slices.Contains,一串 nil 判断换成 cmp.Or(a, b, c),Go 1.26 新加的 new(42)、errors.AsType[T](err) 也收在里面。 它会先看 go.mod 里的 Go 版本,再按项目实际版本挑能用的现代写法。方向也和 Go 团队自己的 modernize 分析器一致,Junie 这类 agent 同样能用。 让 AI 写的 Go 看起来像今年写的,而不是五年前。 GitHub:https://t.co/SN4WGIacsh
是什么 go-modern-guidelines 是 JetBrains 官方 GitHub 项目(3,585 stars),提供供编码 Agent 使用的 Modern Go 指南,目标是减少模型生成过时 Go 代码。
架构与核心设计
项目以代理可消费的规则与技能包为核心,覆盖 Go 1.0–1.27,并从项目 go.mod 检测语言版本,只启用对应版本可用的语言特性和标准库 API;内容方向与 Go 团队的 modernize analyzer 对齐。分发层支持 Junie、Claude Code、Codex、Cursor 市场及 skills.sh;首次使用由小型 CLI 通过 go install 安装到本地缓存,不修改项目文件。
值得借鉴的亮点
它把训练数据滞后和旧写法频率偏高转化为显式规则,用 max、slices.Contains、cmp.Or、new(42)、errors.AsType[T] 等例子引导 Agent 产出更贴近当前 Go 生态的代码。版本感知机制避免将新 API 无条件用于旧项目,跨 Agent 的统一指南包也提供了共同规则入口。
坑与边界
README 要求 Go 1.25+;旧版本依赖 GOTOOLCHAIN=auto 自动切换,首次运行还需要 Go 在 PATH 中且可能下载工具链。新语法是否适合生产,仍取决于项目兼容矩阵、团队风格和代码审查。它主要规范新代码生成,并不等于自动重构或质量保证,README 之外的效果不应推断。