go-modern-guidelines教程:让AI写出现代Go代码(JetBrains官方插件)

📅 2026-08-30 · 🏷️ Go语言 · AI编码 · 开发规范

项目概览

GitHub: JetBrains/go-modern-guidelines · 语言: Go · ⭐ 2.8k+ · JetBrains 官方

go-modern-guidelines是什么?

AI 编码代理的一大毛病:写 Go 代码还在用十年前的老写法——if-else 判空、手写循环、不会用新标准库函数。JetBrains 这个官方项目,就是给 AI 代理喂"现代 Go 编码规范",让它用上从 Go 1.0 到 1.27 最有用的特性(含 modernize 分析器覆盖的全部内容)。

装上之后,代理会:用 max(a, b) 而不是 if-else、用 slices.Contains 而不是手写循环、用 cmp.Or(a, b, c) 而不是一长串 nil 判断;甚至知道 Go 1.26 的新东西,比如 new(42) 取指针、errors.AsType[T](err) 做类型安全错误匹配。并且它自动检测 go.mod 里的 Go 版本,只教你当前版本能用的语法。

环境要求

CLI 只装进本地缓存(~/.cache/go-modern-guidelines),从不修改你的项目

各平台安装

Claude Code

/plugin marketplace add JetBrains/go-modern-guidelines
/plugin install modern-go-guidelines@goland-claude-marketplace

涉及 Go 任务时会自动触发该技能。

Codex CLI

codex plugin marketplace add JetBrains/go-modern-guidelines
codex plugin add modern-go-guidelines@goland-codex-marketplace

JetBrains Junie CLI

/extensions marketplace add JetBrains/go-modern-guidelines
/extensions install modern-go-guidelines

Cursor

cursor-agent plugin marketplace add https://github.com/JetBrains/go-modern-guidelines
# 再在 Cursor 会话里用 /plugins 安装

其他代理(skills.sh)

npx skills add JetBrains/go-modern-guidelines
# 只装技能本体:
npx skills add JetBrains/go-modern-guidelines --skill use-modern-go

效果对比

场景老写法现代写法
取较大值if a > b { return a }...max(a, b)
切片含某元素for 循环遍历slices.Contains(s, x)
取第一个非空值嵌套 nil 判断cmp.Or(a, b, c)
取指针临时变量 + &new(42)(Go 1.26)
类型安全错误匹配errors.As + 断言errors.AsType[T](err)

本地开发与调试

make dev-install                 # 构建到工具缓存
export GO_MODERN_GUIDELINES_DEV=1 # 让代理用你的本地构建
make dev-uninstall               # 恢复发布版

适合谁

这本质上是"给 AI 代理注入领域规范"的典型案例,和Ponytail极简编码插件的思路一脉相承。想控制 AI 代理的代码风格,还可以看Claude Code会话管理教程

📚 相关阅读

Ponytail插件教程:让AI写最精简的代码

Aider教程:终端AI结对编程助手

📚 常见问题

go-modern-guidelines是什么?

GitHub: JetBrains/go-modern-guidelines · 语言: Go · ⭐ 2.8k+ · JetBrains 官方

如何上手go-modern-guidelines?

Go 团队:统一让 AI 助手的产出符合团队现代风格