iT邦幫忙

2023 iThome 鐵人賽

DAY 15
3

如果你沒聽過三劍客,太好了,這篇就是為你而寫的!
如果你還沒用過GitHub Copilot,你還有三個月的時間不會成為這個標題嘲笑的對象XD
如果你沒聽過GitHub Copilot...

.
.
.
.
.
.
.
.
.
.
.

還是很謝謝你點進來幫我刷瀏覽數
XD

.
.
.


Github Copilot:大AI工具時代的前奏

還是簡單介紹一下Github Copilot好了(奴性好重XD)

簡單來說,它可以在你Coding的時候根據上下文、寫作習慣吐出程式碼,就像這樣:


【圖】這個功能以下都簡稱「AutoComplete」(圖片來源
.
.

三步驟立刻開始免費試用30天

  1. 先去官網訂閱、綁信用卡
  2. 到VsCode(或其他IDE)的外掛區,打「Github Copilot」去下載
  3. 重開VsCode,重新登入Github帳號

詳情請看官方教學,開通之後了解一下快捷鍵就好,相較之下我還覺得開通比較麻煩XD


【圖】我就愛看中文✌️
.
.

快捷鍵看這裡,無痛上手!

動作 快捷鍵 備註
想看提示 alt+\ 基本上會自動跳提示,如果你不小心錯過了可以再次叫出提示
看下一個提示 alt+[
看上一個提示 alt+]
希望使用該提示 tab Copilot跳給你的建議程式碼會先以「灰色字」呈現,你想使用就按tab,它就會實際寫入檔案裡

其實用Github Copilot不難,比較麻煩的是要改變自己的開發習慣,還有要付錢(欸?)

.
.
.


除了Github Copilot,你知道他還有孿生兄弟嗎?

你以為這樣就結束了嗎?

事實上,Github還針對開發者推出一系列的輔助開發工具,包含現在還需要排隊等待的Github Copilot Voice,還有等一下會介紹的的Github Copilot ChatGithub Copilot Labs


【圖】這幾個外掛都是到VsCode的外掛區下載


【圖】Copilot系列的工具可以在官網上看到,沒事就先排一下waitlist(?)


【圖】除此之外,也可以到【GitHub Next】留意近期要推出的功能、新玩具。

https://ithelp.ithome.com.tw/upload/images/20230930/20136292KtQVeFLaf4.png
【圖】如果你已經在waitlist上,但還沒輪到你,打開VsCode在初始的時候就會跳這個視窗
.
.

Copilot Chat:ChatGPT就住在VsCode裡!

1. 不要被英文介面嚇到,直接打中文

裝了這個之後,就不必切換到網頁視窗才能用ChatGPT,直接在VsCode內點左側欄的外掛icon,就可以開始對話。Copilot Chat的介面是英文,但是你用中文問問題它會以中文回答,無需再另外下指令說「以下對話皆以中文進行」。


.
.

2. 小撇步:任務結束清對話紀錄!

由於Copilot Chat不像網頁版的ChatGPT可以另開新視窗,因此,當我們結束一個任務、告一段路的時候,要記得手動按上方的清除icon(請見上圖的綠色字)。否則偶爾會發生「錯頻」,當你進到下個問題時,它還在上個問題的情境裡。

另外要注意的是,雖然Copilot Chat用的訓練模型是GPT3.5,但它似乎不像網頁版的GPT3.5一樣聰明。因此,大家要提高資訊判讀的警覺(這個議題我也預計出一篇【內功心法】唷,敬請期待\(・ω・)/ )。如果想問比較複雜的問題,還是建議大家回網頁版去用。
.
.

3. 不只是問問題,你可以「命令它」

除了在對話窗,你也可以在程式碼的任何一個地方叫出Chat外掛,命令他幫你處理程式碼、請它解釋這段code、產生文件、寫測試...等等。請注意,你可以「命令它做事情」,這意外著有更多的彈性去應用它,而不是單純的了解特定資訊(問ChatGPT問題)。

我在下圖的範例function,是用來管理驗證失敗要跳的錯誤訊息,我給Chat下的指令是 「請加入兩個錯誤:未填寫姓名、未填寫生日」。我原本只預期它能幫我接在pattern後面就好,沒想到它聰明又貼心的幫我加在required的判斷裡面。這代表,它看得懂我的指令以及原本程式碼的意圖,經過消化後才給出結果。


.
.

Copilot Labs:解鎖AI工具的無限可能性

Copilot Labs裝起來後,點左側欄的icon就會出現下圖這個畫面。

這四個區塊點開來的功能簡介如下:

1. Explain(解釋程式碼)

點開Explain的頁籤,再選取程式碼後,左邊會即時顯示被選取的內容,再按下「Ask Copilot」就可以了。
我自己都會再點「Advanced」,在原有的Prompt預設指令後面加上「in tradtional Chinese」,不然跑出來的結果會是英文(要逼死誰)。


.
.

2. Language TransLation(轉換程式語言)

使用方法和上一個類似,能轉換的語言還不少!

我自己比較少用這個功能,目前實務上會需要「Language TransLation」是在翻寫舊專案的時候。可是呢,有翻寫過舊專案的人就知道,最麻煩的不是轉換語言/框架。最麻煩的是這些上古神獸都已經找不到規格文件、也找不到當初負責開發的人,因此你要先把舊程式的邏輯整理出來,才能開始接下來的翻寫工作。


.
.

3. Brushes

這裡有一系列的快捷小功能,推薦大家去試玩一下,或許可以給你一些靈感和啟發:「原來AI工具還可以這樣用!」

以下我列出值得試玩的功能、能幫上忙的時機:

  • Readable:一鍵優化程式碼,提升可讀性
  • Debug:當你要除錯的時候,一鍵幫你加好所有console
  • Clean:一鍵清除無用的console、註解(上正式機前把髒東西清乾淨!)
  • Chunk:將過長的程式碼拉出來,另外包成一個function(我自己prefer一個fn處理一件事)
  • List Steps:分解列出這個fn的步驟,會用註解直接加在程式碼內做說明。因此,你也可以用它來「一鍵加註解」


【圖】美中不足的是不給改Prompt指令(嘆息
.
.

4. Test Generation

測試的部分後面會再提到,這裡就先省略~

這裡要注意的是,選取程式碼的時候要「頭尾選到整個function」。沒有選到一個完整的函數,或是多選了fn名稱前面的註解等等,都會被判定不是一個函數,會沒辦法使用這個功能生成測試。

.
.
.


今日回顧

今天洋洋灑灑從白天寫到黑夜介紹了Github Copliot,看得讓人流口水。說到底它什麼都好,唯一個缺點就是要錢XD

所以,下一篇我們就要來介紹強而有力的免費替代工具啦~
各位免費仔們,明天記得上車!


上一篇
【內功心法】超越技術學習的高牆:利用ChatGPT打造學習筋斗雲
下一篇
非GitHub Copilot不可?4個免費工具讓你立馬退訂閱!
系列文
軟體工程師必備的AI工具力—— 全方位實戰應用X核心Mindset養成30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言