GitHub Copilot:編碼 AI

GitHub Copilot:編碼 AI

如果你是一名程序員,你很可能已經因為編寫冗長的程序而筋疲力盡(或者你會!)而且你可能想知道,“如果有人和我坐在一起幫助我創建這些程序會怎樣? ?”

現在您擁有 GitHub Copilot,這是一種人工智能工具,可幫助您更有效地編寫腳本。GitHub Copilot 可以建議代碼行,甚至可以完成您的功能。

在本文中,您將詳細了解 GitHub CoPilot 以及它可以為您做什麼。讓我們開始吧!

什麼是 GitHub CoPilot,它是如何工作的?

GitHub 是微軟的子公司,它與 OpenAI(一家人工智能研究初創公司)合作開發 GitHub Copilot。您可以將 Copilot 作為擴展安裝或通過 GitHub Codespaces 在線使用它。它還可以與 Visual Studio 代碼無縫協作。

Meet GitHub Copilot - your AI pair programmer. https://t.co/eWPueAXTFt pic.twitter.com/NPua5K2vFS

— GitHub (@github) June 29, 2021

AI 從開放平台和 GitHub 存儲庫上提供的數十億個源代碼中學習,為您提供代碼行或有時整個功能的建議。開發人員將 Copilot 設計為從開發人員的程序中學習,以隨著時間的推移提高其準確性和精確度。

Copilot 將根據您前面的行、函數名稱和其他因素為您的程序建議最合適的代碼。您可以接受 Copilot 提出的建議、探索它提出的其他建議、修改您獲得的代碼或完全忽略它;由你決定。

GitHub Copilot:編碼 AI

需要明確的是,Copilot 不是一個簡單的自動完成程序,它不會為您創建整個程序。它更像是一個上下文感知工具,充當伴侶,觀察您的工作進度並在您編碼時提供建議。

副駕駛會為你做什麼?

不,CoPilot 不是來自未來的具有所有答案的機器。它會查看您正在編寫的代碼,回憶它從數十億其他程序中學到的東西,然後推薦您接下來應該編寫的內容。

根據 GitHub 的說法,CoPilot 能夠理解各種框架和語言,並且可以很好地使用它們。開發人員對學習 AI 工具進行了訓練,以了解多種框架和語言以及來自 GitHub 存儲庫的源代碼。

GitHub Copilot:編碼 AI

技術預覽顯示它將很好地幫助您使用 Python、JavaScript、TypeScript、Ruby 和 Go。

您的智能虛擬編程合作夥伴將從您編寫的代碼中提取上下文,並使用您在程序中使用的函數生成可比較的代碼。它試圖理解你的意圖並建議最好的代碼。但是,這些建議可能並不總是最合適的。

相關:如何在 Github 上創建您的第一個存儲庫

根據您對其建議的批准和拒絕,它會向您和數百萬其他開發人員學習,以更好地適應您的編碼風格。它根據您對在給定程序中嘗試實現的內容的描述,將不同的代碼片段組合在一起。當您的程序中有重複的短語時,它會自動填充代碼,這將使您免於一次又一次地輸入相同的代碼。不僅如此,它還可以根據您的程序可能產生的可能錯誤來推薦測試。

Copilot 的發布讓開發者們議論紛紛。許多人都渴望使用 AI 工具,看看它可以提供什麼。

開發人員如何評價 Copilot?

世界各地的開發人員表示,Copilot 將使他們的工作更輕鬆,節省大量時間,並幫助他們專注於工作。

開發人員一直在不同的社交媒體平台上分享他們使用新 AI 工具的經驗。據一位在隱私和安全行業工作的開發人員稱,Copilot 的建議是準確的,這為他在明顯和重複的代碼上節省了大量時間。

I've been testing #GitHubCopilot in Alpha for the past two weeks. Some of the code suggestions it comes up with are eerily good.

Here's a thread with some examples that I found surprising. Will update with new examples over time. https://t.co/lD5xYEV76Z

— Feross (@feross) June 30, 2021

“Copilot 是 2020 年代三大技術創新之一,”一位一直在關注 GitHub 和 OpenAI 的 Copilot 開發的微軟高級研究員在一系列推文中分享道。

So stoked to finally discuss Copilot!

I've used it inside MSR for months, watched it evolve, and discussed collabs.

[Disclaimer: the tech is by the amazing @github/@openai, I'm an informed observer.]

Not exaggerating, Copilot will be in top-3 tech developments of 2020s 🧵👇 https://t.co/aoQMfpSgtT

— Alex Polozov (@Skiminok) June 29, 2021

開發人員認為 AI 自動完成是有益的,並且會繼續存在。然而,他們懷疑 Copilot 等人工智能工具將完成多少工作。開發人員也仍然擔心它最終可能會取代它們。

Copilot 會取代您成為開發人員嗎?

GitHub 首席執行官 Nat Friedman 表示,Copilot 是一種生產力工具,可為您提供代碼完成功能和想法,以便在您的代碼中實現。他認為,借助 Copilot 等 AI 工具,軟件開發正在進入下一個生產力變革階段。Friedman 提到,過去編譯器、調試器、垃圾收集器和語言使開發人員的工作效率更高。然後開發人員分享彼此的工作以改進他們的代碼。現在你可以使用人工智能來編碼,但問題陳述總是由人類來解決。

GitHub Copilot:編碼 AI

圖片來源:https://news.ycombinator.com/item?id=27677110

AI 可以根據您已經在程序中編寫的內容建議模式匹配代碼。但是,要有效且成功地使用它,您必須了解程序的每一行。

作為開發人員,您的工作不僅是開發代碼,還要針對您要解決的問題的要求和規範創建特定的代碼。Copilot 等 AI 工具將幫助您比自己開發代碼更快。

但是您必須告訴 AI 工具您希望它在您的程序中做什麼。作為開發人員,您始終負責您的程序。它是一種類似於電子郵件、即時消息、對話式 AI 以及讓我們的生活更輕鬆的所有技術的工具。

雖然人工智能是編碼的未來,但人工智能完全主導並自行設計程序的時代還有很長的路要走。

CoPilot 將協助開發人員

作為開發人員,您總是在截止日期前,還有什麼比建議代碼行並自動填充重複代碼以按時完成工作的編碼夥伴更好的了。

Copilot 在早期就顯示出了最初的希望,但即使是 GitHub 對其適用性也持謹慎態度。GitHub 表示,有時 CoPilot 的建議可能對您的程序沒有意義或有益。您應該始終交叉檢查、測試和查看從 Copilot 或任何其他 AI 工具獲得的編碼建議。

GitHub Copilot:編碼 AI

圖片來源:https://copilot.github.com/

因為沒有什麼是完美的,所以 Copilot 總是有可能犯錯。但是,學習 AI 工具將使開發人員更容易編碼。從長遠來看,評論它將如何影響開發人員社區還為時過早。甚至會不會很危險?


如何使用 Python 作為命令行計算器

如何使用 Python 作為命令行計算器

雖然您可以在計算機上使用圖形計算器,但 Python 編程語言解釋器可以兼作桌面計算器。它在 Python 社區中非常流行,以至於官方教程中都提到了它。下面介紹如何將 Python 用作計算器。

面向程序員的 8 個最佳 Java 博客

面向程序員的 8 個最佳 Java 博客

作為程序員,你應該接受挑戰才能生存,並在開發或編程領域創造一些奇蹟。因此,如果您正在尋求學習高級編程語言以提高您的職業技能,Java 是最好的前景之一。

初學者開始使用 Python 的 7 個重要命令

初學者開始使用 Python 的 7 個重要命令

如果您有一個全面的路線圖,詳細說明初學者應學習哪些概念以及如何進一步進步以達到下一個里程碑,那麼學習 Python 等新編程語言將變得輕而易舉。即使是中級程序員也應該經常複習他們的基礎知識,為自己打下堅實的基礎。

響應式網頁設計原則

響應式網頁設計原則

如今,構建一個根據瀏覽器或設備調整其用戶界面的網站或應用程序是一種常見的做法。有兩種方法可以實現這一目標。第一個涉及為不同的設備創建不同版本的網站或應用程序。但它效率低下,並可能導致不可預測的錯誤。

如何使用 C++、Python 和 JavaScript 計算數字中的位數

如何使用 C++、Python 和 JavaScript 計算數字中的位數

處理數字是編程的一個組成部分。每種編程語言都支持以多種不同方式操作數字。在本文中,您將學習如何使用迭代、基於日誌和基於字符串的方法查找整數中的總位數。

用於容器管理的 9 個最佳 Docker 替代方案

用於容器管理的 9 個最佳 Docker 替代方案

容器對於虛擬環境中的軟件開發、部署和管理非常有益。Docker 在容器化過程中很有用,但它不是唯一的平台。如果您正在尋找 Docker 的替代品,那就別無所求。此列表展示了一些功能豐富且高效的 Docker 替代方案,可用於您的下一個項目。

SQL 與 NoSQL:下一個項目的最佳數據庫是什麼?

SQL 與 NoSQL:下一個項目的最佳數據庫是什麼?

SQL 與 NoSQL:下一個項目的最佳數據庫是什麼?

如何在您的 WordPress 帖子中嵌入推文

如何在您的 WordPress 帖子中嵌入推文

在您的 WordPress 帖子中嵌入第三方服務是一種吸引訪問者興趣的令人興奮的方式。嵌入的內容還提供了使掃描更容易的視覺提示。WordPress 使添加此類內容變得容易。

如何使用 npkill 刪除節點模塊文件夾

如何使用 npkill 刪除節點模塊文件夾

Node.js 是一個 JavaScript 運行時環境,允許您在 Web 瀏覽器之外運行 JavaScript,使其成為開發各種應用程序的流行選擇。它的流行部分是由於大量的 NPM 包可以簡化開發人員的體驗。

如何編寫和編譯你的第一個 Solidity 代碼

如何編寫和編譯你的第一個 Solidity 代碼

Solidity 是以太坊區塊鏈上智能合約使用的編程語言。它是一種靜態類型的、面向對象的編程語言。

前 5 大徽章將增強您的 GitHub 存儲庫

前 5 大徽章將增強您的 GitHub 存儲庫

GitHub 徽章可以通過為用戶提供一種快速的方法來捕獲存儲庫指標來提高存儲庫的可讀性。徽章可以嵌入到您的 README.md 中,以向其他開發人員闡明您的項目的重要性和必要性。因此,讀者可以通過檢查附加的徽章快速了解存儲庫。

什麼是國際程序員節?今年的 3 種慶祝方式

什麼是國際程序員節?今年的 3 種慶祝方式

國際慶祝日是對社會事務、歷史日子和各自職業給予認可的好方法。國際程序員日慶祝程序員在改善日常生活方面所發揮的作用。我們生活的文明世界是程序員辛勤工作的產物。

Python String format() 方法如何工作?10個例子

Python String format() 方法如何工作?10個例子

無論是數據庫查詢還是數學運算的結果,Python 字符串格式方法都提供了一種更加動態和吸引人的方式來向用戶呈現結果。

Visual Studio 2022 與 2019:您現在應該升級嗎?解釋

Visual Studio 2022 與 2019:您現在應該升級嗎?解釋

今年早些時候,微軟向狂野的編程世界發布了 Visual Studio 2022 的預覽版。這是個好消息!這是一個非常受歡迎的 IDE,但考慮到它蓬勃發展的 DevOps 生態系統的變化速度,它需要進行調整甚至大修。

軟件度量的簡單介紹

軟件度量的簡單介紹

軟件度量是用於量化軟件各個方面的度量。這些方面可以包括開發團隊的成本、質量和效率。

如何在 Windows 10 上安裝 .NET Framework 3.5 版

如何在 Windows 10 上安裝 .NET Framework 3.5 版

作為 Windows 用戶,您可能至少遇到過 .NET Framework 這個詞。它是 Microsoft 開發的軟件框架,可讓您構建和運行 C#、C++、F# 和 Visual Basic 程序。最新的 .NET 版本是 4.8,但您的計算機可能需要舊版本的 .NET(如 .NET 3.5)才能運行某些應用程序。

Flask 或 CherryPy:您應該使用哪種 Python 框架?

Flask 或 CherryPy:您應該使用哪種 Python 框架?

如果您是 Python 開發人員,您可以從一系列可用的框架中受益匪淺。雖然有些框架最適合大型生態系統,但其他框架則專門服務於特定的發展目標。繼續閱讀以了解兩個 Python 框架 Flask 和 CherryPy 之間的基本特性、用法和區別。

如何使用 Python、C++ 和 JavaScript 查找 N 位完美立方體和正方形

如何使用 Python、C++ 和 JavaScript 查找 N 位完美立方體和正方形

許多程序員喜歡使用代碼解決棘手的數學問題。它有助於提高頭腦和提高解決問題的能力。在本文中,您將學習如何使用 Python、C++ 和 JavaScript 找到最小和最大的 n 位完美正方形和立方體。每個示例還包含幾個不同值的示例輸出。

如何將 Python 添加到 Windows PATH 變量

如何將 Python 添加到 Windows PATH 變量

從終端運行 Python 通常是不可避免的。但是,如果您是第一次在 Windows 10 上安裝 Python,則只有將其添加到 Windows PATH 環境變量中,才能通過 Windows 終端運行它。

如何使用 Python if 語句

如何使用 Python if 語句

if 語句是邏輯編程的驅動力。因此,更好地掌握 Python 是對 Python 編程技能的重要補充。

如何使用 Python 作為命令行計算器

如何使用 Python 作為命令行計算器

雖然您可以在計算機上使用圖形計算器,但 Python 編程語言解釋器可以兼作桌面計算器。它在 Python 社區中非常流行,以至於官方教程中都提到了它。下面介紹如何將 Python 用作計算器。

面向程序員的 8 個最佳 Java 博客

面向程序員的 8 個最佳 Java 博客

作為程序員,你應該接受挑戰才能生存,並在開發或編程領域創造一些奇蹟。因此,如果您正在尋求學習高級編程語言以提高您的職業技能,Java 是最好的前景之一。

初學者開始使用 Python 的 7 個重要命令

初學者開始使用 Python 的 7 個重要命令

如果您有一個全面的路線圖,詳細說明初學者應學習哪些概念以及如何進一步進步以達到下一個里程碑,那麼學習 Python 等新編程語言將變得輕而易舉。即使是中級程序員也應該經常複習他們的基礎知識,為自己打下堅實的基礎。

響應式網頁設計原則

響應式網頁設計原則

如今,構建一個根據瀏覽器或設備調整其用戶界面的網站或應用程序是一種常見的做法。有兩種方法可以實現這一目標。第一個涉及為不同的設備創建不同版本的網站或應用程序。但它效率低下,並可能導致不可預測的錯誤。

如何使用 C++、Python 和 JavaScript 計算數字中的位數

如何使用 C++、Python 和 JavaScript 計算數字中的位數

處理數字是編程的一個組成部分。每種編程語言都支持以多種不同方式操作數字。在本文中,您將學習如何使用迭代、基於日誌和基於字符串的方法查找整數中的總位數。

用於容器管理的 9 個最佳 Docker 替代方案

用於容器管理的 9 個最佳 Docker 替代方案

容器對於虛擬環境中的軟件開發、部署和管理非常有益。Docker 在容器化過程中很有用,但它不是唯一的平台。如果您正在尋找 Docker 的替代品,那就別無所求。此列表展示了一些功能豐富且高效的 Docker 替代方案,可用於您的下一個項目。

SQL 與 NoSQL:下一個項目的最佳數據庫是什麼?

SQL 與 NoSQL:下一個項目的最佳數據庫是什麼?

SQL 與 NoSQL:下一個項目的最佳數據庫是什麼?

如何在您的 WordPress 帖子中嵌入推文

如何在您的 WordPress 帖子中嵌入推文

在您的 WordPress 帖子中嵌入第三方服務是一種吸引訪問者興趣的令人興奮的方式。嵌入的內容還提供了使掃描更容易的視覺提示。WordPress 使添加此類內容變得容易。

如何使用 npkill 刪除節點模塊文件夾

如何使用 npkill 刪除節點模塊文件夾

Node.js 是一個 JavaScript 運行時環境,允許您在 Web 瀏覽器之外運行 JavaScript,使其成為開發各種應用程序的流行選擇。它的流行部分是由於大量的 NPM 包可以簡化開發人員的體驗。

如何編寫和編譯你的第一個 Solidity 代碼

如何編寫和編譯你的第一個 Solidity 代碼

Solidity 是以太坊區塊鏈上智能合約使用的編程語言。它是一種靜態類型的、面向對象的編程語言。