GitHub Copilot 是 AI 結(jié)對程序員。 可以使用 GitHub Copilot 在編輯器中獲取整行或整個函數(shù)的建議。
1. 簡介
讓我們首先了解一些關(guān)于 GitHub Copilot 的內(nèi)容。 這是 GitHub 和 OpenAI 的合作成果。 Copilot 是一種基于人類程序員編寫的數(shù)十億行代碼訓(xùn)練的語言模型。 ,Copilot 能夠生成多種語言的計算機(jī)代碼。 例如,你可以輸入“編寫一個函數(shù)來反轉(zhuǎn)二叉搜索樹”,它可以自動完成。 并且它與以下 IDE 兼容:
2. 為 Visual Studio Code 安裝 GitHub Copilot 擴(kuò)展
若要使用 GitHub Copilot,必須先安裝 Visual Studio Code 擴(kuò)展。
在 Visual Studio Code 市場中,轉(zhuǎn)到 GitHub Copilot 擴(kuò)展頁,然后單擊“安裝”。
此時會顯示一個彈出窗口,要求打開 Visual Studio Code。 單擊“打開 Visual Studio Code”。
在 Visual Studio Code 的“擴(kuò)展: GitHub Copilot”選項卡中,單擊“安裝”。
如果以前未在 GitHub 帳戶中授權(quán) Visual Studio Code,系統(tǒng)會提示你在 Visual Studio Code 中登錄到 GitHub。
如果以前已在 GitHub 帳戶中授權(quán) Visual Studio Code,系統(tǒng)將會自動授權(quán) GitHub Copilot。
在瀏覽器中,GitHub 將請求 GitHub Copilot 所需的權(quán)限。 若要批準(zhǔn)這些權(quán)限,請單擊“授權(quán) Visual Studio Code”。
在 Visual Studio Code 的“Visual Studio Code”對話框中,若要確認(rèn)身份驗證,請單擊“打開”。
GitHub Copilot 為多種語言和各種框架提供建議,但尤其適用于 Python、JavaScript、TypeScript、Ruby、Go、C# 和 C++。 以下示例使用的是 JavaScript,但其他語言的工作方式類似。
打開 Visual Studio Code。
在 Visual Studio Code 中,創(chuàng)建一個新的 JavaScript (*.js) 文件。 1. 在 JavaScript 文件中,鍵入以下函數(shù)標(biāo)頭。
```javascript{:copy}
function calculateDaysBetweenDates(begin, end) {
``` GitHub Copilot 將自動以灰色文本建議整個函數(shù)正文,如下所示。 具體的建議可能會有所不同。
要接受建議,請按 Tab。
3. 數(shù)據(jù)集概述
我們選擇的數(shù)據(jù)集是從 UCL 機(jī)器學(xué)習(xí)存儲庫下載。 它包括根據(jù)墨西哥、秘魯和哥倫比亞國家的個人的飲食習(xí)慣和身體狀況估計肥胖水平的數(shù)據(jù)(Fabio 等人,2019 年)。
我發(fā)現(xiàn)使用 copilot 非常簡單。 正如在下面看到的,每次輸入內(nèi)容或到下一行時,Copilot 都會開始生成灰色代碼。 大部分時間,只需點擊 Tab 或 Enter,就可以自動填充代碼。
下面是使用 Copilot 導(dǎo)入數(shù)據(jù)集并快速查看的示例。 它可以幫助我們制作漂亮的圖表。 輸入注釋:
## nobesity is the dependent variable
## check distribution of nobesity
點擊tab,然后看著它生成其余部分:
Copilot 不僅擁有編程知識。 它還具有有關(guān)世界的一般知識。 在下面的這段代碼中輸入:
## calculating body index (BMI)
在代碼中正確實現(xiàn)了 BMI 公式! 不僅如此,還可以使用 Copilot 的建議繪制分布圖和熱圖。輸入:
## plot all variables
和
## get corr
4. 協(xié)助非英語母語人士
GitHub Copilot不僅可以理解英語,還可以理解其他語言,這對于非英語母語的開發(fā)人員來說很有幫助,因為編程語言都基于美式英語。例如,CSS的屬性color就是美式英語,因此對于母語為英式英語或加拿大英語的人(在這些英語中這個單詞寫作“colour”)來說,“color”是陌生的拼寫方法。拼寫錯誤或語法錯誤會導(dǎo)致程序出錯,浪費很多時間。
在下圖中,我用西班牙語寫了一條注釋,其中包含一個單詞“importar”,翻譯成英語是“import”。但GitHub Copilot很快就按照西班牙語完成了我的注釋,并按照注釋的描述導(dǎo)入了必要的庫。
此外,GitHub Copilot還可以將英語單詞翻譯成其他語言。MilMikDev在推特上發(fā)了一則帖子,使用GitHub Copilot將一個包含了一系列單詞“answer”、“question”和“date” 的數(shù)組翻譯成各種語言。
5. 創(chuàng)建查找數(shù)據(jù)的字典
GitHub開發(fā)者關(guān)系副總裁Martin Woodward與我們分享了下面這個技巧。GitHub Copilot很擅長創(chuàng)建查找數(shù)據(jù)的字典。你可以試試看,通過一條注釋讓GitHub Copilot創(chuàng)建包含兩個字母的 ISO 國家代碼,它就會啟動補(bǔ)齊國家名稱。你只需要編寫一條注釋和前幾行代碼,GitHub Copilot就可以生成所需的結(jié)果。
6. 測試代碼
在整個軟件開發(fā)的生命周期中,編寫測試是至關(guān)重要的一個步驟,但有時卻很乏味。GitHub Copilot擁有出色的模式識別及模式補(bǔ)全(pattern completion)功能,因此可以加快編寫單元測試、回歸測試等。
有關(guān)如何使用GitHub Copilot進(jìn)行測試的更多信息,請參見下列資源:
-
使用GitHub Copilot實現(xiàn)自動化測試:https://applitools.com/blog/using-github-copilot-to-automate-tests/
-
使用GitHub簡化測試:https://github.com/blackgirlbytes
-
利用 AI 和 GitHub Copilot 編寫更好的測試:https://about.codecov.io/blog/writing-better-tests-with-ai-and-github-copilot/
7. 利用正則表達(dá)式匹配模式
GitHub Copilot可以幫助你更快地編寫正則表達(dá)式。你只需編寫一條注釋或一個函數(shù)名,GitHub Copilot即可給出提示。
GitHub Copilot可以幫助你刪除字符串中的空格。
8. 準(zhǔn)備技術(shù)面試
我發(fā)現(xiàn)很多開發(fā)人員,包括我自己,都在利用GitHub Copilot來準(zhǔn)備面試。
具體方法如下:
-
首先,我會設(shè)法自己解決問題,不依賴GitHub Copilot的幫助。
-
如果在解決問題的過程中卡殼或感到灰心喪氣,我就會激活GitHub Copilot,并利用它來尋找更好的解決問題的思路。
-
接著,我會刪除 GitHub Copilot 生成的代碼,禁用GitHub Copilot,然后根據(jù)新獲得的信息,再次嘗試尋找解決方案。
每當(dāng)遇到挫折想放棄時,我就會通過這種方法堅持學(xué)習(xí)。即使沒有導(dǎo)師或同伴指導(dǎo)我,我也不會放棄,因為我隨時都可以獲得新思路。GitHub Copilot就是我的數(shù)字導(dǎo)師。但是,請注意,不要在面試期間激活 GitHub Copilot(這是作弊)。
9. 發(fā)送推文
當(dāng)然,你可以直接通過推特應(yīng)用程序發(fā)送推文,但我更喜歡通過IDE發(fā)送推文。在最近的一次直播中,我需要演示在GitHub Copilot中使用Python調(diào)用Twitter API v2,不過我很少使用Python。但在我寫了幾條注釋之后,GitHub Copilot就生成了我需要的代碼,拯救了我!
10. 退出 Vim
剛接觸 Vim 的開發(fā)人員經(jīng)常遇到的一個問題是:如何退出Vim。如今 Visual Studio Code、JetBrains 和 Neovim都支持GitHub Copilot,因此你可以通過GitHub Copilot退出Vim。
11. 通過Copilot Labs瀏覽新代碼庫
GitHub Copilot Labs是GitHub Copilot的一個補(bǔ)充擴(kuò)展,由GitHub Next團(tuán)隊開發(fā),是一個實驗性質(zhì)的邊欄,可以幫助開發(fā)人員將代碼從一種編程語言翻譯成另一種,而且還會逐步解釋每一段代碼。
理解新的代碼庫很難,GitHub Copilot Labs的這兩個功能可以提供一定的幫助。通過將代碼翻譯成開發(fā)人員更熟悉的語言并使用“解釋”功能來說明代碼,這樣開發(fā)人員就可以更好地理解復(fù)雜的代碼塊。
12. 進(jìn)一步的分析
讓我們嘗試使用 lambda 函數(shù)來編碼一些分類變量。 Copilot 可以為此生成幾乎準(zhǔn)確的代碼。 但是必須進(jìn)行一些調(diào)整,例如將“Yes”更改為“yes”。 這里我不能確定這是 Copilot 本身的問題還是我給出的說明的問題,因為是訓(xùn)練的原因可能是很多人的代碼寫的不太相同吧,也可能需要指定字符串應(yīng)該如何格式化。
Copilot 是對性別特別敏感。 在任何單元格中輸入“性別”,就不再提供任何建議! 這肯定是為了所謂的P.C,所以 Copilot 工作時,需要避免使用“性別”等這些比較敏感的詞。
現(xiàn)在,來分析一下肥胖人群與 high_cal、fam_his 的關(guān)系:
## sum of high_cal and fam_his across different obesity groups
Copilot 提供了我們需要的代碼。 它還為我們提供了代碼來繪制這些結(jié)果。 這類似于下面的代碼段。
我們?nèi)粘5腅DA工作都可以方便的完成,所以在最后我嘗試了一些不太正式的東西:
## best way to plot BMI and age and obesity group
可以看到一個非常豐富多彩且可解釋的散點圖(見上圖)。 這表明寫一個信息量不大的評論,仍然可以給我們準(zhǔn)確的結(jié)果。
13. 使用總結(jié)
Copilot可以生成有用的短代碼片段。 它還可以生成幾行高質(zhì)量的代碼。 雖然它并不完美但它確實幫助我從某個地方開始。每天都使用 Copilot的確可以節(jié)省時間。 因為我們不再需要花費太多時間來尋找諸如“如何在多個列上使用 .agg”之類的的答案,我們只要寫好注釋就好,那么我們需要它花錢嗎?
參考文獻(xiàn)
GitHub Copilot 快速入門 - GitHub Enterprise Cloud Docs
百度安全驗證?文章來源地址http://www.zghlxwxcb.cn/news/detail-453575.html文章來源:http://www.zghlxwxcb.cn/news/detail-453575.html
百度安全驗證?
到了這里,關(guān)于GitHub Copilot 快速入門的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!