GitHub Copilot 是微軟與OpenAI共同推出的一款A(yù)I編程工具,基于GitHub及其他網(wǎng)站的源代碼,根據(jù)上文提示為程序員自動(dòng)編寫下文代碼,可以極大地提高編寫代碼的效率。
先看看ChatGpt是怎么回答Copilot的功能特點(diǎn):
給大家簡(jiǎn)單提取一些關(guān)鍵信息,GitHub Copilot 是微軟與OpenAI共同推出的一款A(yù)I編程工具,基于GitHub及其他網(wǎng)站的源代碼,根據(jù)上文提示為程序員自動(dòng)編寫下文代碼,可以極大地提高編寫代碼的效率,核心功能如下:
- 根據(jù)已有上下文補(bǔ)全代碼
- 根據(jù)函數(shù)名和參數(shù),生成方法體
- 根據(jù)注釋自動(dòng)生成代碼
- 代碼優(yōu)化
- 生成測(cè)試代碼
Copilot使用的是OpenAI燒了數(shù)千萬美元研發(fā)出來的GPT-3.5模型,Copilot在GPT-3模型基礎(chǔ)之上通過對(duì)GitHub的開源代碼進(jìn)行學(xué)習(xí),得到了Codex模型,該模型具備強(qiáng)大的代碼生成能力
在使用Copilot之前,需要一些準(zhǔn)備工作
1.GitHub Copilot訂閱服務(wù)
首先你要有一個(gè)gitHub賬號(hào),沒有賬號(hào)的自行注冊(cè)即可
點(diǎn)擊此處注冊(cè):https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F&source=header-home
有了gitHub賬號(hào)之后,進(jìn)入Copilot官網(wǎng),點(diǎn)擊申請(qǐng)。
前兩個(gè)月免費(fèi)試用,第三個(gè)月開始付費(fèi),每月10,每年 100 ,每年100,每年100;或者TB購買,不過有概率封禁,如果是學(xué)生的話,可以申請(qǐng)學(xué)生認(rèn)證,認(rèn)證成功之后也可以免費(fèi)使用。
大家可以先點(diǎn)擊start trail體驗(yàn)一下
進(jìn)入之后可以填寫自己的相關(guān)信息
2.Idea安裝Copilot
要求:Idea版本應(yīng)不低于2021.2,否則無法搜到Copilot插件
重啟idea之后便可使用
3.Idea使用Copilot
安裝后重啟,點(diǎn)擊tools->Copilot登錄到gitHub之后來獲取使用資格
點(diǎn)擊Cop and Open
將設(shè)備碼復(fù)制到此處
3.1 代碼補(bǔ)全
Copilot能將整行進(jìn)行補(bǔ)全,并且自可以自動(dòng)填充到參數(shù)
Copilot也能自動(dòng)識(shí)別到上文中出現(xiàn)過的workbook變量及其getSheetAt方法,沒有發(fā)生語法錯(cuò)誤的問題。
雖然在上一個(gè)例子中補(bǔ)全效果較好,沒有出現(xiàn)語法錯(cuò)誤的問題,但是Copilot依然會(huì)在很多情況下生成存在語法錯(cuò)誤的代碼片段。如下圖所示,StringUtils類是在本地工程中創(chuàng)建的,類下面只有一個(gè)readTestFile方法,然而Copilot卻生成了print方法,因?yàn)镃opilot是根據(jù)數(shù)億的開源代碼學(xué)習(xí)到的,不能及時(shí)的去學(xué)習(xí)本地工程的代碼信息,所以本質(zhì)上跟TabNine一樣是會(huì)存在語法錯(cuò)誤的問題,只是由于模型更強(qiáng)大,所以錯(cuò)誤的概率更小,但是一旦涉及到本地工程的代碼,錯(cuò)誤的概率就會(huì)非常高。
Copilot方法級(jí)的代碼生成也有很多錯(cuò)誤的時(shí)候,比如生成讀取XML文件的代碼,結(jié)果生成的是讀取Excel的代碼,可能是因?yàn)轭愰_頭import了較多Excel相關(guān)的API。
3.2 單元測(cè)試
用Copilot寫單元測(cè)試是非常方便的,它能幫助我們生成很多測(cè)試數(shù)據(jù),減少M(fèi)ock數(shù)據(jù)的煩惱。
假設(shè)我們有一個(gè)名為Calculator的類,其中有一個(gè)add方法,用于將兩個(gè)數(shù)字加。我們希望使用Copilot生成一個(gè)測(cè)試類來測(cè)試這個(gè)方法。
// Calculator.java
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
首先,我們需要?jiǎng)?chuàng)建一個(gè)測(cè)試類。讓我們?cè)谠创a目錄下創(chuàng)建一個(gè)名為CalculatorTest的Java類。
// CalculatorTest.java
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class CalculatorTest {
@Test
public void testAdd() {
Calculator calculator = new Calculator();
int result = calculator.add(2, 3);
Assertions.assertEquals(5, result, "Addition is incorrect");
}
}
在上述代碼中,我們使用了JUnit Jupiter庫中的Assertions類來進(jìn)行斷言。在testAdd方法中,我們創(chuàng)建了一個(gè)Calculator實(shí)例,然后調(diào)用add方法,將結(jié)果與期望值進(jìn)行比較。
現(xiàn)在,我們可以使用Copilot來生成這段測(cè)試代碼。在IntelliJ IDEA中,選擇Calculator類中的add方法,然后按下快捷鍵Ctrl + Shift + T。文章來源:http://www.zghlxwxcb.cn/news/detail-489060.html
Copilot將根據(jù)代碼片段生成一個(gè)相關(guān)的測(cè)試方法。文章來源地址http://www.zghlxwxcb.cn/news/detail-489060.html
// Copilot生成的測(cè)試方法
@Test
void add() {
Calculator calculator = new Calculator();
int result = calculator.add(2, 3);
Assertions.assertEquals(5, result, "Addition is incorrect");
}
到了這里,關(guān)于AI自動(dòng)寫代碼:GitHub copilot插件在Idea的安裝和使用教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!