大家好,我是樹哥。
隨着 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 的功能,還是感覺新奇的,但仔細一想,其實這不也是問答的一種方式麼。
算了,還是讓我們進入正題吧!
爲了測試這個功能,我設計了一個 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 來說,它的優勢在於:
- 無須FQ,並且速度夠快,幾乎沒有卡頓。
- 直接集成在編輯器中,更加方便!
人工智能迅速發展的今天,這些插件確實能夠極快提高我們的工作效率。之前需要谷歌半天才知道的某個語法知識點,現在直接 1 秒鐘就告訴你結果。
學起來吧,小夥伴們!