大家好,我是树哥。
随着 ChatGPT 风靡全球之后,编程界也迎来了许多代码辅助工具,有非常出名的 Github Copilot 工具。今天,树哥给大家介绍一款免费的代码辅助插件,它无需代理上网,直接在 IDEA 中搜索安装即可。它不仅可以帮你辅助写代码,还可以帮你发现 bug 哦!
它就是 —— Fitten Code!
Fitten Code 旨在帮助程序员提高代码开发效率以及代码质量,它可以自动生成代码,提升开发效率,帮您调试 Bug,节省您的时间。还可以对话聊天,解决您编程碰到的问题。免费且支持 80 多种语言:Python、C++、Javascript、Typescript、Java 等。
目前,Fitten Code 支持 VSCode、JetBrains、Visual Studio、Vim 四个平台,如下图所示。
Fitten Code 插件目前支持四个主要的功能,分别是:智能问答、代码解释、寻找 bug、自动生成代码。
要使用代码解释功能,只需要选中需要解释的代码,然后右键选中「Fitten Code」->「Explain Code」即可解释代码,如下图所示。
随后就会在窗口中弹出关于代码的详细解释,如下图所示。
树哥非常喜欢这个功能,它在我看某些复杂的语法代码的时候特别好用,例如:JDK1.8 Stream 语法。Stream 语法太多,总不可能都记住,这时候用这个功能就非常合适。你看上面的代码解释,就是对于如下这行代码的解释,是不是非常方便呢!
List<ArrearsPeriod> sortPeriods = periodBillMap.keySet().stream()
.sorted(Comparator.comparing(ArrearsPeriod::getYearName)
.thenComparing(ArrearsPeriod::getSort))
.collect(Collectors.toList());
智能问答功能,其实就是一个类 ChatGPT 的功能。它会根据你的问题,解答你的疑问。
我想这个功能比较适合遇到报错问题的时候,直接把错误的问题复制到问答框,让它告诉你解决方向。
有时候我们想要快速地实现某个简单的功能,但又记不起某个 API 是啥,这时候直接用注释写出你想做的事情,随后 Fitten Code 就可以帮你生成代码。例如我想打印出某个目录下所有文件的文件名,于是在注释中写:
// 打印指定目录下所有文件的文件名
随后 Fitten Code 便会弹出代码补全的提示,按下 TAB 键就可以一直补全代码,最后得出如下所示的代码。
private static void listFolderFile(String directoryPath) {
// 打印指定目录下所有文件的文件名
File directory = new File(directoryPath);
if (directory.exists() && directory.isDirectory()) {
File[] files = directory.listFiles();
if (files != null && files.length > 0) {
Arrays.sort(files);
for (File file : files) {
System.out.println(file.getName());
}
} else {
System.out.println("目录为空或无法访问。");
}
} else {
System.out.println("指定的路径不是一个有效的目录。");
}
}
随便输入某个目录,可以成功输出目录下的文件名。太赞了!
这个功能对于效率狂人,真的太好用了,自己都不用去记乱七八糟的 API 了!
看到解决 bug 的功能,还是感觉新奇的,但仔细一想,其实这不也是问答的一种方式么。
算了,还是让我们进入正题吧!
为了测试这个功能,我设计了一个 bug,如下代码所示。
public class ForBugDemo {
public static void main(String[] args) {
int j = 0;
for (int i = 0; i < 10; j++) {
System.out.println(i);
}
}
}
明眼人能发现其中的问题吧?哈哈。随后让 Fitten Code 帮我看看有什么问题,如下是它的输出:
这段代码中存在一些问题:
1. 循环条件中的计数器没有进行自增操作,导致循环无法结束。
2. 循环内打印的是未变化的变量 i,而不是正在递增的变量 j。
以下是修复建议的代码:
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
}
修复后的代码中,循环条件中的变量 i 会在每次迭代时自增,同时在循环内正确地打印被递增的变量 i。
看来它确实能够帮你发现一些 bug 哦,还不错!
Fitten Code 还是挺不错的一款插件,比起 ChatGPT 来说,它的优势在于:
人工智能迅速发展的今天,这些插件确实能够极快提高我们的工作效率。之前需要谷歌半天才知道的某个语法知识点,现在直接 1 秒钟就告诉你结果。
学起来吧,小伙伴们!