ARTICLE · 1037005
JetBrains 里最好用的 AI Coding 插件,强烈推荐!!
这种活最烦的不是不会写,是明明脑子里知道怎么改,手还得在几个文件之间来回切。
我现在在 IDEA 里碰到这种零碎活,很多时候已经不自己一行一行敲了,直接丢给 GitHub Copilot。
如果 JetBrains 里只能让我留一个 AI Coding 插件,我目前会留它。
不是因为它每次生成的代码都对,这种东西谁信谁迟早吃亏。主要是它现在已经不是早期那个“猜下一行代码”的补全插件了。
在最新版 JetBrains 插件里,Copilot 已经支持 Chat、代码补全、Edit mode、Agent mode、Code Review、Checkpoints 等功能。Agent mode 可以直接围绕一个任务改多个文件,Edit mode 则更适合自己控制修改范围。
这两个东西一上来,我对它的用法就完全变了。
比如项目里有这么一段库存冻结逻辑:
public FreezeResult freeze(FreezeCommand cmd){
StockRecord stock = stockRepo.find(cmd.skuId());
if (stock == null) {
return FreezeResult.reject("SKU_NOT_FOUND");
}
int available = stock.getTotal() - stock.getLocked();
if (available < cmd.quantity()) {
return FreezeResult.reject("STOCK_NOT_ENOUGH");
}
stock.lock(cmd.quantity());
stockRepo.save(stock);
return FreezeResult.ok(stock.getSkuId());
}
这种代码我一般不会让 AI “重写一个更优雅的版本”。
没什么意义,十有八九给你改出一堆看着高级、实际上没必要的东西。
我会直接选中方法问它:
给这段库存冻结逻辑补并发保护,保持现有返回值不变,不新增第三方依赖,同时检查是否存在重复冻结问题。
这个提示词有个关键点:约束写清楚。
别只扔一句“优化代码”。
你让它随便优化,它是真敢优化。一个几十行的方法,最后给你拆出 Factory、Strategy、Validator,看得我血压都上来了。
真正让我觉得顺手的还是跨文件修改。
比如你把:
public record FreezeCommand(
Long skuId,
int quantity
){
}
改成:
public record FreezeCommand(
Long skuId,
String warehouseCode,
int quantity,
String requestNo
){
}
后面 Controller、Service、测试代码、调用方都可能跟着动。
以前我的习惯是查引用,一个一个处理。
现在这种机械修改直接交给 Agent,让它先找影响范围,再给修改结果。我自己盯的反而是另外几个地方:
requestNo 有没有参与幂等;
warehouseCode 有没有真正下沉到查询条件;
旧接口兼容有没有被它顺手删掉。
AI 最容易骗过人的地方就在这里:代码能编译,不代表业务是对的。
这一点做 Java 后端的一定得记住。
还有一个我用得挺多的是测试。
比如上面的库存逻辑,我不会让它一句“帮我生成单元测试”就完事,而是把场景卡死:
为 freeze 方法补测试:
1. SKU 不存在
2. 可用库存不足
3. 正常冻结
4. 同 requestNo 重复请求
不要启动 Spring Context。
使用现有测试框架。
不要 mock StockRecord 内部行为。
这种情况下生成出来的东西,通常比让它自由发挥靠谱得多。
Copilot 在 JetBrains 里还支持项目级自定义指令,可以在仓库下放一个:
.github/copilot-instructions.md
让它长期知道这个项目的规矩。这个能力目前在 JetBrains 侧属于预览能力。
我自己的项目里会写得很具体:
Java 代码使用构造器注入,不使用字段注入。
Service 不直接返回数据库 Entity。
新增数据库查询时,优先检查现有 Repository 方法。
金额统一使用 BigDecimal,禁止 double。
修改业务逻辑后,优先补对应单元测试。
不要主动引入新的 Maven 依赖。
这玩意比每次聊天都提醒它“我们项目不用字段注入”省事多了。
装起来也没什么折腾的。
IDEA 打开 Settings -> Plugins,在 Marketplace 搜 GitHub Copilot 安装,重启之后通过 Tools -> GitHub Copilot -> Login to GitHub 登录即可。官方目前支持 IntelliJ IDEA Ultimate、Community、Educational,以及其他多款 JetBrains IDE。
不过有一点我还是得泼盆冷水。
AI Coding 插件最适合干的是:补重复代码、追引用、改 DTO、写测试骨架、解释陌生代码、处理小范围重构。
复杂事务、锁、缓存一致性、MQ 重试、SQL 性能这种东西,我基本不会让它生成完直接提交。
尤其看到这种代码:
if (cacheMiss) {
queryDb();
writeCache();
}
AI 跟你说“逻辑正确”,我第一反应还是去看并发条件,而不是点 Accept。
工具越好用,这个习惯反而越重要。
Copilot 现在最舒服的地方,是它已经能直接待在 IDEA 这套工作流里面。写到一半补代码,选一段问问题,改几个关联文件,再让它把测试补上,不需要不停从 IDE 切出去。
对 Java 开发来说,这比“AI 会不会写一个漂亮的算法题”有用多了。
我现在用这类插件有个原则也很简单:
重复劳动可以交出去,业务判断别交。
按这个方式用,Copilot 确实能省掉不少敲键盘和翻文件的时间。
但它要是突然给我生成一坨看起来特别“优雅”的架构代码,我一般第一件事不是接受。
是删。