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; &x
  • errors.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


GitHub: https://github.com/JetBrains/go-modern-guidelines

评论区

0 条评论

登录后可评论。

江望 11 阅读