讓 Github Copilot 成為最佳幫手
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
2023.12.29 LLM 更新為 GPT-4
套件下載
簡介
- Copilot 是基於基於 OpenAI 加上 GitHub 上大量的原始碼人工智慧技術的開發助手,可以透過開發者輸入的部分程式碼與註解產生相關的程式碼,支援多種程式語言,目前最多的語言是 JavaScript。
- 底層是用 python。
- 目前所使用的 LLM 模型是 GPT-4。(2023.12.29 更新)
- 可透過上下文判斷自動完成程式碼。
- 沒有足夠的上下文也可以透過註解提供更完整的上下文,但混亂的上下文會導致無建議產生。
- 擅長寫重複的程式碼,減少輸入的時間。
- 可自動建立與單元測試程式碼。
- 可促進程式碼的可讀性與標準化。
- 需要連結 Github 帳戶。
- 官方聲稱可以提升 40% 的效率。
優點
- 可以快速生成程式碼,節省部分時間。
- 可根據上下文提示,幫助提供更好理解的程式碼與問題。
- 提高程式碼品質與效率,「可能」減少錯誤與瑕疵。(但如果提示很爛,回饋程式碼也很爛)
- 會一直學習跟進化,會依照專案中的程式碼提供貼近需求的答案。
問題
- 可能存在版權與隱私問題,因為它是透過 Github 程式碼來訓練跟改進模型。
- 不見得會真正了解上下文,所以會提供不合理或不安全的程式碼。
- 會降低開發人員的手感。
課金的力量
註冊此服務要提供信用卡號,可免費使用 30 天,若時間快到了,會先行通知,等到期會開始收費,有官方認證過的教師、學生身份與熱門專案開源者,可以免費使用。
目前力推商務版跟 Enterprise,使用影片可以參考下方的延伸閱讀第二點。
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
輔助鍵(會跟原本 VS Code 預設快捷鍵衝突)
- Ctrl +
可一步一步確認提供的程式碼
- Alt + [ : 選擇上一個建議。
- Alt + ] : 選擇下一個建議。
- Alt +/ : 呼叫建議。
- tab: 同意此建議。
- Ctrl + Enter (提供建議方法)
用嘴巴寫 code?
Demo
透過 Github Copliot 可以完成的功能
- 限制星期六的早上七點到八點才能打卡
- 移除項目
- 修復 bug
- 程式碼中聊天
- 新建訂便當系統專案
- 建立 firebase
- 修改語法或重構
Github Copliot Lab
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
- READBLE: 增加可讀性(好用功能)
- ADD TYPES: 加入型別定義(適用 TS)。
- FIX BUG: 修復臭蟲(部分好用)。
- DEBUG: 找出臭蟲(沒有很好用)。
- CLEAN: 刪除廢 code(很少使用)。
- LIST STEPS: 列出程式碼執行步驟。
- MAKE ROBUST: 建立更強壯的程式碼(想確認有沒有更好的防呆可用)。
- CHUNK:拆分程式碼。
- DOUMENT: 撰寫文件。
- CUSTOM:自訂修改需求。
GitHub Copilot Chat
- VSCode 需要 v1.79.0 以上版本。
- 功能強大,幾乎可以包辦所有開發的事情。
- 可透過 prompt 產生對應的程式碼。
- 新功能:
@workspace
@terminal
, @search
, @api
- 好的註解提示 (prompt) 需要非常具體,因電腦只做你告訴它的事,避免講一大串的要解決的流程,它更擅長處理一步一步的命令。沒有具體的提示可能會回應錯誤的結果。
- 移到所選取的程式碼按右鍵也可直接使用。
- 可直接插入建議後的片段程式碼。
- 使用
@workspace
產生新專案並且 work。
Copilot Chat 可以完成的工作
- 撰寫各種常見的程式邏輯
- 撰寫複雜的正則表示式(Regular Expression)
- 將 HTML 轉成 JavaScript 產生 DOM 的程式碼
- 撰寫呼叫函式/方法的程式碼
- 撰寫特定演算法的程式碼
- 撰寫各種複雜 SQL 語句
- 撰寫 OpenAPI Spec
- 自動生成測試資料
- 自動生成測試程式碼
- 刪除不要的程式碼
- 自動補完程式碼
支援「原始檔控制」自動產生 PR commit message
更動程式後,選擇左方工具列的原始檔控制選項,會在輸入 PR Commit 的欄位右側有個類似星號的圖示,點下去之後,會自動偵測開發者所變動的內容,給予與情境相當的 Commit Message,不會 100% 正確,但可以當作參考,至少不用從頭去想。
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
使用心得
- 大部分的基本功能開發可以透過此套件完成,越訓練會越快速完成。
- 商業邏輯部分仍需要靠自己開發,但可透過詢問問題越來越聚焦。
- 提問的過程會順便幫忙解釋程式碼與提供建議寫法。
- 出入
ctrl+enter
可參考 Copilot 提供的寫法,知道原來還有其他方式,但有時候跑不出來。
- 大推 Copilot Chat 的使用。
- 正確的提問會大大提高想得到的答案,越明確越好。
- 會針對已開啟的檔案交互參考,無法參考整個專案。
- 對變數跟函是命名會使用清楚且一致的規則。
延伸閱讀