夜雨聆风学习资料网

ARTICLE · 1037005

JetBrains 里最好用的 AI Coding 插件,强烈推荐!!

JetBrains 里最好用的 AI Coding 插件,强烈推荐!!
一个 Service 改到一半,DTO 字段换了,Mapper 跟着报红,单测还得补。

这种活最烦的不是不会写,是明明脑子里知道怎么改,手还得在几个文件之间来回切。

我现在在 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 确实能省掉不少敲键盘和翻文件的时间。

但它要是突然给我生成一坨看起来特别“优雅”的架构代码,我一般第一件事不是接受。

是删。

相关学习资料