工程師必備!使用 Github Copilot 一個月的心得
自從一位公司同事分享Github Copilot這個工具後,我發現用了就回不去了! 使用Copilot到現在,我發現Copilot大約節省了我4~5成的開發時間,如果你是一名程式開發者,但你尚未體驗過這個工具,相信閱讀完這篇文章之後你也會毫不猶豫地開始使用它XD
目錄
☑️ GitHub Copilot 介紹 (TL;DR)
☑️ 什麼人適合使用?
☑️ 如何安裝?
☑️ 如何使用?
— 自動填充程式碼 (Tab)
— 解釋函數功能 (/explain)
— 自動寫註解 (/doc)
— 產生10種程式碼建議 (Ctrl + Enter)
— 生成訓練程式碼
— Code review
— 單元測試 (/tests)
☑️ 總結
☑️ 我自己使用一個月下來的心得
GitHub Copilot介紹 (TL;DR)
GitHub Copilot是由GitHub推出的一款人工智能程式助手,旨在提升開發者的編碼效率和品質。這個工具利用OpenAI訓練的大型語言模型 (LLM),能夠理解人類語言並生成程式碼,從而幫助開發者更快地寫出更精確的程式碼。不僅如此,GitHub Copilot能夠根據上下文提供程式碼撰寫建議,甚至能夠根據用戶的prompt自動生成整段程式碼。GitHub Copilot從數百萬行的公共程式庫學習,不斷提升其程式碼建議的品質和準確性。它支持多種程式語言 (我最常用的是Python和 C++) 和框架,使其成為多種開發工作的理想助手。無論是debug、探索新API,還是優化現有程式碼,GitHub Copilot都能提供協助,讓開發工作更加輕鬆和高效。
繼續閱讀 | 回目錄
什麼人適合使用?
- 需要一直撰寫重複程式碼: GitHub Copilot非常擅長撰寫重複的程式碼,可以幫助開發人員節省時間並且提高開發效率
- 你對於某程式語言還不熟悉: GitHub Copilot可以是你很好的助手
- 常需要撰寫單元測試: GitHub Copilot 可以自動幫你寫單元測試
- 需要常幫別人code review: GitHub Copilot 可以先初步幫你做code review,減少你需要看程式碼的時間
- 不喜歡一直上網查library: GitHub Copilot會根據你的上下文自動幫你填充程式碼,節省掉許多時候需要一直查library的時間
- 需要常寫註解:GitHub Copilot 可以根據你給它的程式碼片段,自動幫你生產註解,這在多人開發的專案中非常實用
繼續閱讀 | 回目錄
如何安裝?
首先,前往GitHub Copilot 官網並註冊。若你還沒有GitHub帳號,你需要先創建一個。註冊完成後,遵循指示安裝Github Copilot,目前Copilot支持Visual Studio Code, Neovim, JetBrains系列等IDE。我平常都使用VSCode開發程式,所以接下來的介紹會以VSCode為主!
首先你需要在你的VSCode上的Extensions來安裝GitHub Copilot,下圖中的兩個都需要安裝,安裝完成後你可以在畫面的右下角看到copilot的圖案,點下去後有一個Status可以確認你是否有成功安裝完成!
繼續閱讀 | 回目錄
如何使用
接下來會介紹一些我平常會使用到的一些功能,我覺得都非常實用!
自動填充程式碼 (Tab)
如下圖,當我在計算F1_score時,需要分別計算True Positive (TP), False Positive (FP), True Negative (TN), 以及 False Negative (FN)時,在我完成前幾行的程式碼之後,Copilot就會根據你的上下文猜測你要輸入什麼。Copilot推測的代碼會以灰色文字顯示,這表示這部分是Copilot的建議而不是你已經輸入的代碼。如果Copilot的建議符合你的需求,你可以簡單地按下Tab鍵,Copilot的建議就會被自動填充到你的程式碼中。
繼續閱讀 | 回目錄
解釋函數功能 (/explain)
當你第一次閱讀別人的程式碼時,理解某個函數的功能經常需要花費一段時間來trace code和分析。然而,有了Copilot之後,這個過程變得簡單許多。Copilot能直接向你說明函數的作用。如下圖,使用方法非常直觀:只需選擇你希望Copilot解釋的程式碼部分,然後按下快捷鍵Ctrl + I呼叫出命令視窗,在其中輸入“/explain”後,Copilot便會在旁邊的聊天介面中顯示對該段程式碼的功能進行解釋和介紹,讓你快速掌握其精髓。
繼續閱讀 | 回目錄
自動寫註解 (/doc)
在參與大型專案並與他人合作時,為自己開發的函數撰寫清晰的註解是非常重要的,這樣能夠幫助團隊成員快速理解其功能,確保順利接手和繼續開發。這正是GitHub Copilot大顯身手的時刻。以前面的例子為例,假如原本的註解僅僅是“Calculate score”,這可能對於第一次接觸的開發者來說信息量不足,他們可能不清楚究竟是在計算什麼樣的score。這時,你只需選取相關的程式碼片段,使用快捷鍵Ctrl + I呼叫命令視窗,然後輸入“/doc”,Copilot就能夠根據程式碼的內容自動生成詳細的註解,是不是非常方便XD 這個功能不僅能省去你手動撰寫註解的時間,還能確保註解的品質和一致性,大大地提升工作效率和項目的可維護性。
繼續閱讀 | 回目錄
產生10種程式碼建議 (Ctrl + Enter)
當你需要實現一個特定的演算法,但不確定如何著手時,GitHub Copilot可以成為你強大的演算法助手。以實現“Merge sort”演算法為例,Copilot能夠提供實質性的幫助。在Python中,你只需開始輸入def Merge_sort()
,Copilot就會根據這個提示,自動生成Merge sort演算法的程式碼。
如下圖所示,如果你希望獲得更多的實現方式或需要不同的解法,可以使用快捷鍵Ctrl + Enter,這時,Copilot會提供多達10種不同的代碼建議。這不僅可以幫助你快速實現想要的功能,還能讓你從不同的程式碼實現中學習和獲取靈感,非常適合在開發過程中對演算法進行探索和優化。
繼續閱讀 | 回目錄
生成訓練程式碼
當你剛開始做深度學習任務時,特別是在撰寫訓練模型這一環節時,框架基本上是固定的。這時,利用GitHub Copilot可以顯著提高你的工作效率。以構建一個使用Resnet50進行貓狗圖像識別任務的深度學習模型為例,只要用快捷鍵Ctrl + I呼叫出命令窗,並且輸入你的需求,Copilot就能夠迅速提供一個基礎架構。對於從事深度學習項目的開發者來說,GitHub Copilot不僅能夠省去撰寫標準程式框架的時間,還能提供程式碼實現的靈感和參考,使開發過程更加高效及順暢。
繼續閱讀 | 回目錄
Code review
在多人合作的開發項目中,進行code review是確保程式碼品質和一致性的關鍵要素。GitHub Copilot在這個過程中同樣可以發揮重要作用。當你需要review同事的程式碼時,Copilot可以幫助你快速識別潛在的問題並提出改進建議。
使用Copilot進行程式碼review的過程相當直接。你首先選擇要review的程式碼段落,然後按下快捷鍵Ctrl + I呼叫命令窗。在命令窗中,你可以輸入相應的指令讓Copilot知道你希望對選取的代碼進行審查。接著,Copilot會根據你的輸入提供代碼改進的建議。
繼續閱讀 | 回目錄
單元測試 (/tests)
如果你的工作經常需要撰寫單元測試(unit tests),那麼GitHub Copilot可以成為你的得力助手。單元測試主要是確保你的程式碼能夠正確執行並符合預期,而Copilot能夠大幅簡化撰寫測試的過程。
如下圖,假設我要有一個函式在計算兩個向量的距離,若要驗證函式的正確性,這時候可以請Copilot幫你撰寫unit test來驗證。使用方法只需要選取指定的function,按下快捷鍵Ctrl + I叫出命令窗,輸入”/tests”。
繼續閱讀 | 回目錄
總結
本文介紹了GitHub Copilot的一系列強大功能,這些僅是我在日常工作中經常利用的一部分。從智能程式碼填充、自動生成註解,到撰寫單元測試,這證明了AI技術在軟體開發領域的革命性潛力。然而,Copilot的潛力遠不止於此,更多的功能等待著開發者去探索和利用。
我自己使用一個月下來的心得
GitHub Copilot顯著提高了我的開發效率,大約節省了40%到50%的開發時間,之前很多library都需要一直查並且拼湊起來,現在有了Copilot,省去了我蠻多查找library的時間。我覺得Copilot就如同字面上的意思"副駕",它可以很有效的協助你做程式開發,若你還沒嘗試過使用Copilot協同開發的話,這邊真心建議讀者可以試試看,希望這篇文章能開啟讀者與AI協同開發撰寫程式碼的起點!
有任何問題都可與我討論,或是讀者有什麼其它神奇的功能也可以分享XD
繼續閱讀 | 回目錄