現代開發新武器:GitHub Copilot,可以大大加速我們開發!

直接進入業配主題:

  1. GitHub Copilot 不只是會幫忙補全程式碼,而是真的有在思考,然後猜你想要什麼!比你另一伴還懂你(?
  2. 將 Chat 整合在 IDE 中,加速進入心流狀態,可以專注思考邏輯上,程式碼就叫 GitHub Copilot 幫你寫

別講這麼多了,先去申請使用看看吧!

申請 GitHub Copilot 👉🏻 https://github.com/features/copilot


0. 安裝套件 / 申請 GitHub Copilot

  • 申請使用 GitHub Copilot
    • 目前個人使用 10鎂/月,100鎂/年(首月免費!)
    • 學生教育方案免費(請不要當假學生)
  • 安裝插件

1. 提示 vs.自動補全

提示

就好像是一種聯想,它是有本身想法的。

它會根據你給關鍵字猜想你要講什麼事情,算是一種引導。

自動補全 Code Insight / code-completion / IntelliSense / YouCompleteMe (?)

這就好像是有它在旁邊幫你查字典

你打了某個詞他就會把後續的意思打完,但是如果你的字典裡面沒有那一些詞彙的話,它就不知道要回應什麼。

YouCompleteMe

以往 IDE 或是文字編輯器都內建自動補全,或者說是模糊比對檔案關鍵字,讓開發不用打那麼多字(完整字詞),Tab 大法按就對了 🤣


GitHub Copilot 是會根據提供現有的資料,真的思考過後配合現在程式碼的上下文給出提示!

現有的資料大部分是由 IDE 開啟的檔案、IDE 同專案的程式碼、也會參考 GitHub 公開的 Repository,所以才可以寫出跟你很像的程式碼!

當然如果看起來很怪或者很爛的話…可能就是__的問題 😏

2. 使用方式

基本用法

直接打程式碼自動就會有 GitHub Copilot 提示了

科目ㄧ:幫忙過濾資料

這有個取得價格修改紀錄的 function,其中包含系統產生的或者使用者新增的。

有一個需求是只要顯示使用者修改的紀錄給使用者看,所以需要增加過濾的條件

原本長這樣:

我只是加了一個參數:$filter_system (我字都還沒打完,GitHub Copilot 就猜到了)

接著下方判斷式,我剛要開始打字,GitHub Copilot 就打完了… 還會用常數 self::SYSTEM_USER_ID超優秀 🤩

科目二:變數命名清楚,就寫完了

GitHub Copilot 都知道台灣週休二日(還好沒有提示給只休一天,更奴 🥲

科目三:


進階用法

選取程式碼後,輸入指令(快捷鍵 cmd + i)讓 GitHub Copilot Chat 幫忙寫完

指令可以是(後面可以多給 Prompt)

  1. 修正 /fix
  2. 簡化 /simplify 超級好用,推薦 ⭐⭐️⭐️⭐️⭐️️
  3. 寫測試 /tests (不過專案程式架構要標準化,不然會怪怪的)
  4. 給我個解釋 /explain
  5. 補上文件 /doc

/simplify

這裡一個迴圈,原本的寫法是這樣

GitHub Copilot Chat 優化 /simplify

發現 GitHub Copilot Chat 忘記幫我初始化了 /simplify set zreo first ,你沒看錯英文那麼爛 GitHub Copilot Chat 都懂(零還打錯成 zreo 也通哦,超扯…

也可以用於簡化寫法喔~

After

/explain

還會幫忙翻譯名詞,超級詳細

3. 不負責聲明

感謝科技帶給我們便利,但是寫出來的東西是否可以所用就要靠人類大腦來判斷,所以目前我應該還不會被裁員(誤)

透過 GitHub Copilot 整合 Chat 在 IDE 一起使用,省去切換 ChatGPT 的麻煩,可以好好進入心流開發真的蠻讚又輕鬆。

有一個很 OP 的指令: /new 可以直接從無到有幫忙生一個專案!

不過這個功能還只是個孩子,還在地上爬。產生出來的東西基本上不能用,不過已讓我大開眼界 🤯


希望好的工具可以幫助到大家,底下歡迎留言告訴我都怎麼使用 GitHub Copilot 吧!