你知道嗎?代碼居然還能這樣寫
這篇文章要介紹的是 GitHub Copilot 。
微軟去年推出的 GitHub Copilot 是一個(gè)基于 AI 的編程輔助工具,簡單理解就是我們寫點(diǎn)注釋或者寫個(gè)方法名,Copilot 就能理解了我們的意思,然后幫我們寫一個(gè)相關(guān)的方法出來。
使用 GitHub Copilot 很簡單,只需要兩步:
1、在 GitHub Copilot 網(wǎng)站上進(jìn)行注冊。
2、在各種 IDE 中安裝插件后就可以使用。
在 https://copilot.github.com/ 這個(gè)網(wǎng)站進(jìn)行注冊,注冊成功后,會提示審核通過后會給你的 GitHub 賬戶中的主要郵箱發(fā)送郵件。
我大概等待了一天多的時(shí)間就收到了郵件。
我現(xiàn)在常用的 IDE是:
- Mac 上的 VS Code。
- Mac 上的 Rider。
- Mac 上的 IDEA。
- 虛擬機(jī)中的 Visual Studio 2022。
恰好,這幾個(gè) IDE 都有 GitHub Copilot 插件,下面就看看怎樣來具體使用。
IntelliJ IDEA
1、在 IDEA 的 中 Preferences 中進(jìn)行插件的安裝,搜索 GitHub Copilot 即可;
2、安裝成功之后,在底部狀態(tài)欄有紅色的小圖標(biāo)。
3、點(diǎn)擊圖標(biāo)進(jìn)行 Github 的登錄,會彈出下面對話框:
4、點(diǎn)擊”Copy and Open“ ,會進(jìn)入到網(wǎng)站,在框中粘貼 Code 后繼續(xù),出現(xiàn)下面界面:
5、選擇授權(quán)后,IDEA 中會出現(xiàn)下面彈窗,點(diǎn)擊 Agree :
6、到這插件就已經(jīng)安裝成功,創(chuàng)建一個(gè)空白類 TestGitHubCopilot 類來試試效果,當(dāng)輸入注釋 //冒泡排序 后回車,等一小會就會出現(xiàn)冒泡排序的代碼,如下圖:
按下 Tab 鍵這個(gè)代碼就會插入到類中了,是不是很方便。
Rider
雖然 VS 也推出了 Mac 版,但在 Mac 中我還是習(xí)慣使用 Rider ,功能非常強(qiáng)大。以前在 Windows 中使用 VS 時(shí)會安裝 Resharp 這個(gè)插件來提升效率,而 Rider 是在 Resharp 基礎(chǔ)上開發(fā)出來的 C# IED。
GitHub Copilot 可以在所有 JetBrains 的工具中使用,Rider 也是其中一員,所以使用步驟和 IDEA 中基本一致。
也同樣創(chuàng)建一個(gè) TestGitHubCopilot 空白類來測試,除了寫注釋,還可以直接寫方法名,比如想計(jì)算兩個(gè)日期的天數(shù),可以寫方法名 CalculateDaysBetweenDates ,效果如下圖:
Visual Studio Code
1、在 VS Code 的插件中搜索 Copilot ,進(jìn)行安裝即可。
2、安裝完后,需要登錄 GitHub,如果錯(cuò)過了登錄,將插件禁用再啟用,重啟 VS Code ,會再次彈出下面的對話框:
3、創(chuàng)建一個(gè) js 文件,寫一個(gè)函數(shù) yanzhengyouxiang ,使用漢語拼音居然也能識別,確實(shí)挺厲害的。
如果發(fā)現(xiàn)代碼不能滿足,還可以選擇下一個(gè),如果符合要求,按 Tab 鍵確認(rèn)。
Visual Studio 2022
1、在 VS 中使用 GitHub Copilot 需要用 17.1.2 或以上版本,點(diǎn)擊頂部菜單的擴(kuò)展->管理擴(kuò)展進(jìn)行插件的安裝。
不過不是很容易下載成功,試過正常網(wǎng)絡(luò)和科學(xué)上網(wǎng)都是一樣,總是下載到一半就提示錯(cuò)誤,我運(yùn)氣比較好,嘗試很多次后終于成功了。
2、下載完成后,安裝界面如下圖:
3、安裝成功后,在編輯區(qū)域的下方點(diǎn)擊小圖標(biāo),在彈出的菜單中進(jìn)行登錄:
4、登錄的步驟和上面的一樣,登錄驗(yàn)證成功后,創(chuàng)建一個(gè) TestGitHubCopilot 類進(jìn)行測試,在類中輸入方法名QuickSort ,立即就出現(xiàn)了提示代碼,如下圖:
GitHub Copilot 雖然功能很強(qiáng)大,而且還在不斷學(xué)習(xí)中,但只能起到幫我們?nèi)ニ阉鞔a的作用,不過可以暢想一下,雖然 AI 的越來越成熟,有沒有可能在我們和客戶聊完需求后,稍作整理,就能讓 AI 編寫出能運(yùn)行并且符合業(yè)務(wù)的程序呢?
如果說讓 AI 能自動生成滿足業(yè)務(wù)的程序還比較遙遠(yuǎn),但現(xiàn)在火熱的零代碼產(chǎn)品卻能大大提升效率,讓程序員能夠?qū)W⒃跇I(yè)務(wù)上。