大家好,我又来折腾了。还是我,那个沉迷于用代码解决代码问题的全栈小弟。
自从上次做了“命名神器”插件后,我写代码的幸福感确实提升了不少。但作为一个开发者,我们的“痛点”就像野草,割了一茬又长一茬。这不,最近我又被一个新的问题给缠上了——写代码注释。
说起注释,我们对它真是又爱又恨。
- 爱它:因为一份好的注释,能在几个月后拯救那个对着自己代码一脸懵逼的你,也能让接手你代码的同事对你心存感激。
- 恨它:因为写注释真的好麻烦!特别是写完一个复杂的方法后,那种大脑被掏空的感觉,实在不想再耗费心力去组织语言描述它。
市面上其实也有一些注释生成工具,我自己也用过。但用下来总感觉差点意思。它们大多是基于“翻译”的逻辑,简单地把你的方法名翻译成中文。
这就导致一个很尴尬的问题:如果你的方法命名本身就不太规范,那生成的注释基本就等于废话。
比如我写了个方法叫 process(List dataList),一个翻译工具可能会生成注释:// 处理数据列表。
这……说了跟没说一样啊!天知道我这个 process 方法里是过滤、是排序、还是做了什么复杂的业务聚合。
我寻思着,现在大模型(LLM)的能力这么强,它连考试写论文都能搞定,难道还“读不懂”我区区一个方法吗?工具应该是“理解”我的代码,而不是简单地“翻译”我的方法名。
于是,肝了几个晚上,我为我的那个小小的IDEA插件,增加了一个我自己超爱用的新功能:
AI 智能注释!
它的使用方式,我设计得极其简单粗暴:
- 把你的光标,放在需要生成注释的方法里的任何一个地方。你没看错,是方法体里的任何地方,不需要选中,不需要思考。
- 轻轻按下快捷键:
Alt + M(如果快捷键不行,可以修改其他的自己方便的快捷键) - 稍等片刻(大概一两秒,等待期间不用停留在页面等待,完成后会自动替换或者插入注释,速度取决于你的网络和选择的模型)。
然后,见证奇迹的时刻就到了。一段由AI“读懂”你代码后,为你量身定做的注释,就会自动出现在方法的上方。
我们还拿刚才那个 process 方法举例。哪怕你的方法名写得再随意,只要你的代码逻辑是清晰的,AI就能看懂。
【你的代码】
Java
public List<String> process(List<User> userList) {
List<String> result = new ArrayList<>();
for (User user : userList) {
if (user.isActive() && user.getAge() > 18) {
result.add(user.getEmail());
}
}
return result;
}
【按下 Alt + M 后】
Java
/**
* 从用户列表中筛选出状态为活跃且年龄大于18岁的用户,并返回他们的邮箱地址列表。
*
* @param userList 用户对象列表
* @return 符合条件的用户的邮箱地址列表
*/
public List<String> process(List<User> userList) {
// ... 方法体 ...
}
看到没!它直接看懂了你的代码逻辑,而不是管你那个叫 process 还是 handle 的烂名字。这才是真正的智能,这才是我们想要的工具!
当然,考虑到大家对注释的详细程度有不同偏好,我在插件的设置页面里,也提供了两种模式供你选择:
-
简单模式:成标准的 Javadoc 风格注释,包含对参数(
@param)和返回值(@return)的简单说明。 -
详细模式:生成标准的 Javadoc 风格注释,包含对参数(
@param)和返回值(@return)的详细说明,非常适合写库或者重要接口。同时支持智普ai的多种模型,不同的模型速度和效果都有差异,可以在智普的开放平台,申请好apikey,进行使用,如果不想申请,可以使用作者的apikey,但是速度比较慢,建议还是自行申请。
这个功能,我自己现在已经用得停不下来了。每次写完一个方法,顺手按一下 Alt+M,已经成了一种肌肉记忆。
如果你已经安装了我的插件,直接更新到最新版即可体验。
如果还没尝试过的朋友,欢迎在 IDEA 插件市场搜索 “Easy Naming” (对,还是那个命名神器,现在它更强大了) 下载使用。
希望这个小功能,能再次为你节省一点点宝贵的时间和脑力,让我们能更专注于创造本身。
—— 一个持续为开发者幸福感而折腾的全栈小弟