寫註釋就能自動出程式碼?copilot 嚐鮮

lucifer發表於2021-10-09

copilot 是一個基於 AI 的程式設計輔助工具。目前已經整合在了 vscode 中,後續可能整合到更多平臺和工具,目前還是測試階段。官網地址:https://copilot.github.com/

支援所有語言

copilot 是利用網路中現有的公開資料,尤其是開源在 Github 上的程式碼, 然後基於機器學習演算法訓練出來的。因此 copilot 理論上支援所有程式語言。

目前我測試了 JS 和 Python,效果都還蠻不錯的。官方提供了 ts,go,py 和 rb 語言的示例。

註釋即程式碼

你可以通過編寫註釋然後一路根據 copilot 的提示編寫出完整的程式。

比如我想根據 Github 使用者名稱獲取使用者資訊。我只需要寫下這樣一行註釋。以 JS 為例:

// 根據 Github 使用者名稱獲取使用者資訊

copilot 是如何一步步引導你完成完整功能的呢?我們來看下。

第一步:

注意:註釋下面的程式碼顏色是淺色的,是 copilot 提示出來的。下同,不再解釋。

按下 tab 鍵就會淺色的程式碼就會被填充,並提示接下來的程式碼。

第二步:

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

類似的例子還有很多,等待大家來探索。

程式碼補全

IDE 的一個很重要的功能就是程式碼補全。 copilot 增強了 IDE 的補全功能。

copilot 可以根據你的程式碼倉庫以及世界上公開的程式碼倉庫提示你可能的輸入,從而減少你敲擊鍵盤的次數,在更短的時間寫出更多的程式碼,獲取更多的摸魚時間。

舉個例子,仍然以 JS 為例。我想傳送一個 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);
});

對我的倉庫功能來說, 上面程式碼有一小部分是有問題的。 不過我只需要稍微改改就行了。效率提升還是不錯的。

如何使用?

在 vscode 外掛市場搜尋 github copilot,點選 install,然後按照提示安裝即可。

安裝好了就可以體驗了! 寫寫註釋?敲敲程式碼?按按 tab?程式碼 duang 的一下就生成了。

總結

copilot 是一個類似 tabnine 的 ai 程式設計輔助工具,目前以 vscode 外掛的形式提供免費服務,目前是測試階段,還沒有最終發行。它有自動提示,根據註釋寫程式碼等諸多激動人心的功能。

更多功能以及最新動態請訪問官方網站:https://copilot.github.com/

相關文章