0

这款 AI 代码辅助插件真不错,还能帮你发现 bug! - 陈树义

 1 week ago
source link: https://www.cnblogs.com/chanshuyi/p/18156667/introduce_ai_assistant_fitten_code
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

这款 AI 代码辅助插件真不错,还能帮你发现 bug!

大家好,我是树哥。

随着 ChatGPT 风靡全球之后,编程界也迎来了许多代码辅助工具,有非常出名的 Github Copilot 工具。今天,树哥给大家介绍一款免费的代码辅助插件,它无需代理上网,直接在 IDEA 中搜索安装即可。它不仅可以帮你辅助写代码,还可以帮你发现 bug 哦!它就是 —— Fitten Code!

Fitten Code 旨在帮助程序员提高代码开发效率以及代码质量,它可以自动生成代码,提升开发效率,帮您调试 Bug,节省您的时间。还可以对话聊天,解决您编程碰到的问题。免费且支持 80 多种语言:Python、C++、Javascript、Typescript、Java 等。

17131841449757.jpg

目前,Fitten Code 支持 VSCode、JetBrains、Visual Studio、Vim 四个平台,如下图所示。

17131842362351.jpg

Fitten Code 插件目前支持四个主要的功能,分别是:智能问答、代码解释、寻找 bug、自动生成代码。

要使用代码解释功能,只需要选中需要解释的代码,然后右键选中「Fitten Code」->「Explain Code」即可解释代码,如下图所示。

17131845741718.jpg

随后就会在窗口中弹出关于代码的详细解释,如下图所示。

17131846656017.jpg

树哥非常喜欢这个功能,它在我看某些复杂的语法代码的时候特别好用,例如: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 的功能,还是感觉新奇的,但仔细一想,其实这不也是问答的一种方式么。

算了,还是让我们进入正题吧!

为了测试这个功能,我设计了一个 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. 无须FQ,并且速度够快,几乎没有卡顿。
  2. 直接集成在编辑器中,更加方便!

人工智能迅速发展的今天,这些插件确实能够极快提高我们的工作效率。之前需要谷歌半天才知道的某个语法知识点,现在直接 1 秒钟就告诉你结果。

学起来吧,小伙伴们!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK