AI写Go代码总在”过时”?JetBrains官方出手了,
AI 写 Go 代码,为什么总在生成”过时代码”?
用 Claude Code 或者其他 AI 编程助手写过 Go 的同学,有没有发现一个奇怪的现象:AI 写的 Go 代码,风格总是”旧旧的”——比如手写 for 循环找元素,而不是用 slices.Contains;用 if err != nil { return err } 做链式检查,而不是 cmp.Or;指针直接取地址,而不是用 new(val)。
这不怪 AI 笨。JetBrains 专门写了一篇博客解释这个问题,根源有两个:训练数据滞后(模型的知识有截止日期,不知道 Go 1.26 的新特性)和频率偏差(开源代码库里 old 写法比新写法多太多,AI 天然倾向高频模式)。
所以 JetBrains 出手了。
go-modern-guidelines:给 AI 编程助手的 Go 版本升级指南
这是 JetBrains 官方出品的 Agent Skill,专门教 AI 编程助手写现代 Go 代码。
它的核心逻辑很清晰:
- 自动读取项目的
go.mod,识别当前 Go 版本 - 告诉 AI:「这个项目用 Go 1.24,你可以用这些新语法,不要用旧写法」
- 覆盖 Go 1.0 到 Go 1.26+ 所有有用的新特性和标准库更新
装上之后,AI 会自动用现代写法替代旧模式:
max(a, b)替代if-else取最大值slices.Contains(slice, val)替代手写 for 循环查找cmp.Or(a, b, c)替代一串 nil 检查new(42)获取指针而非x := 42; &xerrors.AsType[T](err)做类型安全的错误匹配
怎么装
支持 Junie、Claude Code、Codex、Cursor 等主流 AI 编程助手。Claude Code 用户只需要两行命令:
/plugin marketplace add JetBrains/go-modern-guidelines
/plugin install modern-go-guidelines
或者跨平台通用安装:
npx -y skills add jetbrains/go-modern-guidelines --agent claude-code
装完以后,在任何 Go 项目里 AI 都会自动激活这份指南,不需要每次手动触发。
为什么值得装
Go 每年两个大版本,生态更新很快。但 AI 模型的训练数据是时间有界的,注定会”落伍”。这个 Skill 相当于给 AI 加了一个实时更新的现代 Go 语法词典,让它从第一行代码开始就写正确的现代 Go,而不是等人类来 code review 再返工。
对于写 Go 的团队来说,这意味着:更少的 refactoring、更一致的代码风格、更少的”AI 味道”——省下的都是真金白银。
作为 JetBrains 官方维护的项目,质量有保证,而且跟 Go 团队的 modernize analyzer 方向一致。如果你团队用 Go + AI 编程助手,这个 Skill 基本上是必装的。
https://github.com/JetBrains/go-modern-guidelines
评论区
登录后可评论。