寫注釋就能自動(dòng)出代碼?copilot 嘗鮮
支持所有語言
copilot 是利用網(wǎng)絡(luò)中現(xiàn)有的公開數(shù)據(jù),尤其是開源在 Github 上的代碼, 然后基于機(jī)器學(xué)習(xí)算法訓(xùn)練出來的。因此 copilot 理論上支持所有編程語言。
目前我測試了 JS 和 Python,效果都還蠻不錯(cuò)的。官方提供了 ts,go,py 和 rb 語言的示例。
注釋即代碼
你可以通過編寫注釋然后一路根據(jù) copilot 的提示編寫出完整的程序。
比如我想根據(jù) Github 用戶名獲取用戶信息。我只需要寫下這樣一行注釋。以 JS 為例:
//?根據(jù)?Github?用戶名獲取用戶信息
copilot 是如何一步步引導(dǎo)你完成完整功能的呢?我們來看下。
第一步:

注意:注釋下面的代碼顏色是淺色的,是 copilot 提示出來的。下同,不再解釋。
按下 tab 鍵就會(huì)淺色的代碼就會(huì)被填充,并提示接下來的代碼。
第二步:

再次按下 tab 鍵,整體的代碼就生成了。

類似的例子還有很多,等待大家來探索。
代碼補(bǔ)全
IDE 的一個(gè)很重要的功能就是代碼補(bǔ)全。copilot 增強(qiáng)了 IDE 的補(bǔ)全功能。
copilot 可以根據(jù)你的代碼倉庫以及世界上公開的代碼倉庫提示你可能的輸入,從而減少你敲擊鍵盤的次數(shù),在更短的時(shí)間寫出更多的代碼,獲取更多的摸魚時(shí)間。
舉個(gè)例子,仍然以 JS 為例。我想發(fā)送一個(gè) fetch 請求。
fetch('https://www.leetcode-solution.cn',?{
它就提示我:

接下來按照它的提示,只按 tab 不寫代碼的情況就可以寫出如下代碼。
fetch("https://leetcode-solution.cn",?{
??method:?"POST",
??headers:?{
????"Content-Type":?"application/json",
??},
??body:?JSON.stringify({
????question_id:?"1",
????lang:?"javascript",
????code:?"console.log(1)",
??}),
}).then((res)?=>?{
??console.log(res);
});
對我的倉庫功能來說, 上面代碼有一小部分是有問題的。不過我只需要稍微改改就行了。效率提升還是不錯(cuò)的。
如何使用?
在 vscode 插件市場搜索 github copilot,點(diǎn)擊 install,然后按照提示安裝即可。
安裝好了就可以體驗(yàn)了!寫寫注釋?敲敲代碼?按按 tab?代碼 duang 的一下就生成了。
總結(jié)
copilot 是一個(gè)類似 tabnine 的 ai 編程輔助工具,目前以 vscode 插件的形式提供免費(fèi)服務(wù),目前是測試階段,還沒有最終發(fā)行。它有自動(dòng)提示,根據(jù)注釋寫代碼等諸多激動(dòng)人心的功能。
更多功能以及最新動(dòng)態(tài)請?jiān)L問官方網(wǎng)站:https://copilot.github.com/
