# 讓 Github Copilot 成為最佳幫手 ###### tags: `Github Copliot`  > 2023.12.29 LLM 更新為 GPT-4 ## 套件下載 * [Github Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot):主要開發使用,會提供程式碼建議。 * [Github Copilot Lab](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-labs):解釋或修改現有程式碼。 * [Github Copilot Chat](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-chat):類似使用網頁 ChatGPT,透過聊天視窗與程式碼進行互動,可產生更完整的程式碼內容。 * [VS Code Speech](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-speech):支援在 VS Code 使用英文語音。 ## 簡介 1. Copilot 是基於基於 OpenAI 加上 GitHub 上大量的原始碼人工智慧技術的開發助手,可以透過開發者輸入的部分程式碼與註解產生相關的程式碼,支援多種程式語言,目前最多的語言是 JavaScript。 2. 底層是用 python。 3. 目前所使用的 LLM 模型是 GPT-4。(2023.12.29 更新) 4. 可透過上下文判斷自動完成程式碼。 5. 沒有足夠的上下文也可以透過註解提供更完整的上下文,但混亂的上下文會導致無建議產生。 6. 擅長寫重複的程式碼,減少輸入的時間。 7. 可自動建立與單元測試程式碼。 8. 可促進程式碼的可讀性與標準化。 9. 需要連結 Github 帳戶。 10. 官方聲稱可以提升 40% 的效率。 ## 優點 1. 可以快速生成程式碼,節省部分時間。 2. 可根據上下文提示,幫助提供更好理解的程式碼與問題。 3. 提高程式碼品質與效率,「可能」減少錯誤與瑕疵。(但如果提示很爛,回饋程式碼也很爛) 4. 會一直學習跟進化,會依照專案中的程式碼提供貼近需求的答案。 ## 問題 1. 可能存在版權與隱私問題,因為它是透過 Github 程式碼來訓練跟改進模型。 2. 不見得會真正了解上下文,所以會提供不合理或不安全的程式碼。 3. 會降低開發人員的手感。 ## 課金的力量 註冊此服務要提供信用卡號,可免費使用 30 天,若時間快到了,會先行通知,等到期會開始收費,有官方認證過的教師、學生身份與熱門專案開源者,可以免費使用。 目前力推商務版跟 Enterprise,使用影片可以參考下方的延伸閱讀第二點。  ## 輔助鍵(會跟原本 VS Code 預設快捷鍵衝突) * Ctrl + :arrow_right: 可一步一步確認提供的程式碼 * Alt + [ : 選擇上一個建議。 * Alt + ] : 選擇下一個建議。 * Alt +/ : 呼叫建議。 * tab: 同意此建議。 * Ctrl + Enter (提供建議方法) ## 用嘴巴寫 code? * [GitHub Copilot Voice](https://marketplace.visualstudio.com/items?itemName=GitHub.heygithub)(目前只有支援英文) * [GitHub Copilot X](https://github.com/features/preview/copilot-x) * [Chinese (Traditional, Taiwan) language support for VS Code Speech](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-speech-language-pack-zh-tw) ## Demo ### 透過 Github Copliot 可以完成的功能 - 限制星期六的早上七點到八點才能打卡 - 移除項目 - 修復 bug - 程式碼中聊天 - 新建訂便當系統專案 - 建立 firebase - 修改語法或重構 ### Github Copliot Lab  - 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% 正確,但可以當作參考,至少不用從頭去想。  ## 使用心得 1. 大部分的基本功能開發可以透過此套件完成,越訓練會越快速完成。 2. 商業邏輯部分仍需要靠自己開發,但可透過詢問問題越來越聚焦。 3. 提問的過程會順便幫忙解釋程式碼與提供建議寫法。 4. 出入 `ctrl+enter` 可參考 Copilot 提供的寫法,知道原來還有其他方式,但有時候跑不出來。 5. 大推 Copilot Chat 的使用。 6. 正確的提問會大大提高想得到的答案,越明確越好。 7. 會針對已開啟的檔案交互參考,無法參考整個專案。 8. 對變數跟函是命名會使用清楚且一致的規則。 ## 延伸閱讀 - [能節省四成開發時間的工具? GitHub Copilot 的介紹與心得分享](https://useme.medium.com/%E8%83%BD%E7%AF%80%E7%9C%81%E5%9B%9B%E6%88%90%E9%96%8B%E7%99%BC%E6%99%82%E9%96%93%E7%9A%84%E5%B7%A5%E5%85%B7-github-copilot-%E7%9A%84%E4%BB%8B%E7%B4%B9%E8%88%87%E5%BF%83%E5%BE%97%E5%88%86%E4%BA%AB-2a07e8ce8f6d) - [Github Copilit Enterprice](https://www.youtube.com/watch?v=-VKyQ6SN41w) - [GitHub Copilot 最佳實務:不要這麼做就對了!](https://www.youtube.com/watch?v=QW9bu2aeQC8)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up