[isTMS]課程 - GitHub Copilot實戰
 

初探 GitHub Copilot

從 Vibe Coding 到 Agentic Development 的程式碼自動生成魔法之旅

變革

從 2023年到2026年,軟體開發有著天翻地覆的改變。AI 驅動的程式碼自動生成從邊緣工具演變成核心開發能力,開發者的角色從手工編碼者轉變為意圖表達者與程式邏輯架構師。

GitHub Copilot 也從簡單的程式碼補全(Code Suggestion)進化到支援完整的應用程式生成框架,而多模態 AI 模型的出現讓自然語言與程式碼之間的溝通變得更加流暢。同時,企業對 AI 輔助開發的採用率從小眾試驗躍升至主流實踐,改變了整個軟體交付的速度與質量標準。

從一個最簡單的情境開始

你可能很熟悉這種工作:改完一段程式,發現下面還有兩段也要跟著改。改完之後,再逐行確認變數沒有用錯、計算結果沒有改變。

這些修改不見得困難,卻需要一直重複。

如果你先示範一處修改,Copilot 就能接著提出其他位置的修改建議,你只要看懂、確認,再決定是否接受,寫程式的過程會有什麼不同?

這次要透過一支簡單的 C# 程式,體驗這種合作方式。你會從編輯器裡的灰色建議文字開始,逐步把重複的計算整理成一個類別,最後執行程式確認結果。

讀完這份教材,你應該能說明三件事:註解如何引導 AI、Copilot 如何協助連續修改,以及為什麼接受建議後仍要驗證。

1. 一個很小的程式,也有值得整理的地方

起始專案只有蘋果的折扣計算:

double applePrice = 35;
double appleDiscount = 0.1;
Console.WriteLine("蘋果折扣後價格是:" + applePrice * (1 - appleDiscount));

接著,你會請 Copilot 協助補上香蕉與榴槤。三種水果的名稱、價格和折扣不同,但都使用同一個公式:

折扣後價格 = 單價 × (1 - 折扣率)

程式可以正常執行。不過,如果同一條規則散落在許多地方,日後調整時,就得逐一找出並修改,也比較容易漏改。

因此,我們要把共同的資料與計算方式整理到 Fruit 類別中。使用它的程式,只需要呼叫:

apple.GetDiscountedPrice()

這就是這次的重構(Refactoring):調整內部的程式結構,同時保持原本的對外行為。

本例的驗收條件很具體:重構前後,蘋果、香蕉、榴槤的價格仍然分別是 31.5、17、80

2. 你寫下的註解,也可以是提示詞

在這次練習中,你會直接把需求寫在 Program.cs 裡:

// 一個計算水果折扣的類別,具有水果名稱、單價、折扣三個屬性,和一個計算折扣後價格的方法。

這段註解同時交代了資料與行為:這個類別代表什麼、應該保存哪些資訊,以及要提供什麼功能。

Copilot 可以參考註解與周圍的程式碼,提出後續實作建議。當需求出現模糊之處,你可以補充更明確的定義,例如:

// Discount 是減價比例,0.1 表示減價 10%。
// GetDiscountedPrice() 回傳 Price * (1 - Discount)。

這裡的關鍵在於把影響結果的資訊說清楚。如果只寫「計算折扣」,AI 可能不知道 0.1 表示減價 10%,還是只支付原價的 10%。兩種寫法都能編譯,結果卻差很多。

這也是 Prompt Engineering 在日常開發中的一種實踐:把你的意圖表達得足夠清楚,讓產生的內容更容易符合需求,也更容易檢查。

3. 從「接著寫」,到「接著改」

影片中會出現兩種值得分開理解的能力。

能力 它協助的事情 本次練習的例子
Code Completion/Ghost Text 在目前游標位置,提出接下來的程式碼 根據註解,補上香蕉計算或 Fruit 類別
Next Edit Suggestions(NES) 根據你正在做的修改,預測下一個要修改的位置與內容 蘋果改用 Fruit 後,建議調整其他相關敘述

灰色文字的補完,通常按 Tab 就能接受。NES 出現時,有時第一次 Tab 是前往建議的位置,第二次才是接受修改。這些功能的行為與設定可參考 VS Code 官方說明

在 Lab 中,你會先把蘋果改成使用 Fruit,再觀察 Copilot 是否提出其他位置的修改。這時候,你剛才做出的修改,也提供了接下來要怎麼改的線索。

這種互動不需要先開啟 Agent Mode,也不需要把整個重構任務送進聊天視窗。你可以留在程式碼編輯區,透過註解、輸入和逐次接受建議來完成工作。

Copilot 不一定每次都提出相同的建議,也不保證一次改完所有位置。沒有出現建議時,手動移到下一段、補上程式碼前綴,仍然可以繼續操作。學習的重點是看懂修改,而不是重現影片裡完全相同的按鍵次數。

4. 這樣做,有哪些實際好處?

少一些重複輸入,保留對每次修改的掌握

建立物件、填入屬性、替換計算式,常常都有相似的模式。Copilot 可以協助產生這些內容,讓你把注意力放在變數是否正確、方法是否符合需求。

每次接受的修改範圍相對小,你也比較容易看出「這一段到底改了什麼」。例如,把 applePrice * (1 - appleDiscount) 換成 apple.GetDiscountedPrice(),就能直接比較修改前後的意義。

在熟悉的編輯位置表達需求

需求註解、既有程式碼與 AI 建議放在一起,你可以就近對照。發現折扣定義不清楚,就補充註解;發現建議用了錯誤變數,就拒絕或修正。

對剛開始接觸 AI 輔助開發的學員而言,這是一個容易開始的入口:從一行註解、一段建議和一次執行結果,就能觀察人與 AI 如何合作。

讓相似的修改有機會被一起找出來

你改了第一個用法之後,NES 可能接著提醒其他相關位置。這對同一個檔案中重複出現的模式特別容易觀察,例如本例三種水果的計算。

這能協助你注意到後續修改,但最後仍要自己確認三段程式都已完成,沒有留下舊公式或重複的輸出。

把維護上的改善真正做出來

這次練習的成果包含一個具體的結構改善:共用公式集中在 Fruit.GetDiscountedPrice() 裡。未來若共同的計算規則改變,就有明確的地方可以調整。

AI 協助執行修改;維護上的好處,來自你選擇的重構方式。 即使程式碼行數因為新增類別而增加,只要責任更清楚、共同邏輯更集中,仍可能是有價值的整理。

5. 人與 Copilot 各自負責什麼?

工作 你負責的判斷 Copilot 可以協助的部分
找到重構方向 判斷哪些邏輯重複、是否值得整理 依照你提供的方向提出程式碼
描述類別需求 定義資料、折扣意義與預期行為 根據註解補上屬性及方法
修改使用方式 檢查每種水果使用的物件與數值 補上初始化內容、提出下一處修改建議
驗證結果 決定正確結果、執行並比對 產生的內容供你檢查與修正

按下 Tab,代表你接受了這次建議。接受之前,至少要能回答:「這段程式做什麼?它用的資料對嗎?」

以本例來說,香蕉物件如果誤用了蘋果的單價,程式仍可能編譯成功;折扣公式寫反,也可能正常執行。可以執行,和符合需求,是兩件需要分別確認的事。

所以最後除了比對三筆結果,Lab 還安排了一個小檢查:把蘋果折扣從 0.1 改成 0.2,確認價格變成 28。這能幫助你觀察程式是否真的依照資料計算。

這些檢查足以支援本次小範例的學習;實際專案的驗證範圍,還要依需求補上其他案例與測試。

6. 接下來,你會親手完成什麼?

整個 Lab 從一段蘋果計算程式開始,最後完成三種水果共用同一個類別。操作路線如下:

階段 你要觀察的重點 Lab 對應位置
取得與執行專案 起始程式已經可以算出蘋果價格 步驟 1–2
用註解補上其他水果 Copilot 如何沿用既有寫法 步驟 3–4
建立 Fruit 類別 提示詞是否把資料與行為說清楚 步驟 5
將原本程式改用類別 一處修改如何延伸到其他位置 步驟 6–7
執行與比對結果 結構改了,原本的計算行為是否保留 步驟 8

這個範例刻意保持簡單,方便你把注意力放在互動過程。完成後,可以再想想自己工作中有哪些相似情況:幾段重複的資料轉換、相似的物件初始化,或同一種呼叫方式需要逐一調整。

補充:GitHub Copilot 的申請與安裝

在開始實作之前,讓我們先了解如何取得並安裝 GitHub Copilot。

第一步:建立 GitHub 帳號

如果你還沒有 GitHub 帳號,請先前往 GitHub 註冊一個免費帳號。註冊過程非常簡單:

  1. 前往 https://github.com
  2. 點選右上角的「Sign up」按鈕
  3. 輸入你的 Email、密碼和使用者名稱
  4. 完成 Email 驗證

第二步:申請 GitHub Copilot 免費試用

GitHub Copilot 提供多種訂閱方案:

  • GitHub Copilot Free (限量免費方案):適合個人開發者,每月有一定的使用額度
  • GitHub Copilot Individual:個人付費方案,每月 $10 美元
  • GitHub Copilot Business:企業方案,每人每月 $19 美元
  • GitHub Copilot Enterprise:企業進階方案,每人每月 $39 美元

申請步驟:

  1. 登入你的 GitHub 帳號
    前往 https://github.com 並登入
  2. 前往 GitHub Copilot 頁面
    訪問 https://github.com/features/copilot 或點選右上角的個人頭像,選擇「Settings」
  3. 啟用 Copilot
    在左側選單中找到「Copilot」選項,點選進入
  4. 選擇訂閱方案
    • 如果你是第一次使用,GitHub 通常會提供 30 天免費試用
    • 學生和開源專案維護者可以免費使用(需要通過 GitHub Education 或 GitHub Sponsors 驗證)
    • 點選「Start free trial」或「Enable GitHub Copilot」按鈕
  5. 完成付款設定
    即使是免費試用,也需要綁定付款方式(信用卡),但在試用期內不會扣款。試用期結束前會通知你是否要繼續訂閱。
  6. 確認訂閱狀態
    回到 Settings > Copilot 頁面,確認看到「GitHub Copilot is active」的訊息

第三步:安裝 VS Code 擴充套件

啟用 GitHub Copilot 服務後,需要在 VS Code 中安裝對應的擴充套件:

  1. 開啟 VS Code
    啟動 Visual Studio Code 編輯器
  2. 前往擴充套件市集
    點選左側活動列的「Extensions」圖示,或按 Ctrl + Shift + X (Mac: Cmd + Shift + X)
  3. 搜尋並安裝 GitHub Copilot
    在搜尋框中輸入「GitHub Copilot」,你會看到主要擴充套件:
    • GitHub Copilot Chat :提供對話式 AI 助手功能 點選「Install」按鈕安裝這兩個擴充套件
  4. 登入 GitHub 帳號
    安裝完成後,VS Code 會提示你登入 GitHub 帳號:
    • 點選右下角彈出的「Sign in to GitHub」通知
    • 或點選狀態列右下角的「GitHub Copilot」圖示,選擇「Sign in」
    • 瀏覽器會開啟 GitHub 授權頁面,點選「Authorize Visual Studio Code」
    • 返回 VS Code,完成授權

第四步:驗證安裝

確認 GitHub Copilot 已經正確安裝並啟用:

  1. 檢查狀態列
    在 VS Code 右下角的狀態列,你應該會看到 GitHub Copilot 的圖示(一個小小的方塊圖案)
  2. 開啟設定
    點選狀態列的 Copilot 圖示,確認選單顯示:
    • 你的 GitHub 帳號名稱
    • 「GitHub Copilot is active」的狀態
  3. 測試功能
    建立一個新的程式碼檔案(例如 test.jstest.cs),輸入一行註解:
    // 建立一個計算兩個數字相加的函數
    
    按下 Enter,如果 Copilot 自動建議程式碼(通常會以灰色文字顯示),表示安裝成功!
  4. 測試 Chat 功能
    Ctrl + I (Mac: Cmd + I) 或點選側邊欄的「Chat」圖示,開啟 Copilot Chat 面板。如果能看到對話介面,表示 Chat 功能也正常運作。

常見問題排解

Q: 我看不到 Copilot 的建議?

  • 確認狀態列的 Copilot 圖示沒有顯示「停用」或「錯誤」
  • 檢查是否已正確登入 GitHub 帳號
  • 嘗試重新啟動 VS Code
  • 確認訂閱狀態是否正常

Q: 我的免費試用期到了怎麼辦?

  • GitHub 會在試用期結束前發送 Email 通知
  • 你可以選擇繼續付費訂閱,或取消訂閱
  • 學生可以申請 GitHub Education Pack 免費使用

Q: 我是學生,可以免費使用嗎?

  • 可以!前往 https://education.github.com/pack 申請 GitHub Student Developer Pack
  • 通過驗證後,可以免費使用 GitHub Copilot
  • 需要提供學生證明文件(學生證、在學證明等)

Q: Copilot 支援哪些程式語言?

  • 支援幾乎所有主流程式語言:Python、JavaScript、TypeScript、C#、Java、Go、Ruby、PHP 等
  • 對於熱門語言(如 Python、JavaScript)的支援效果最好
  • 也支援 HTML、CSS、SQL 等標記語言和查詢語言

隱私與安全設定

GitHub Copilot 會將你的程式碼片段傳送到雲端進行分析,如果你關心隱私問題:

  1. 查看遙測設定
    Settings > Copilot > 可以調整資料收集選項

  2. 排除敏感檔案
    在專案中建立 .copilotignore 檔案,列出不希望 Copilot 分析的檔案或目錄

  3. 企業專用選項
    使用 GitHub Copilot Business 或 Enterprise 方案,可以啟用更嚴格的資料隔離政策

現在,你已經準備好開始使用 GitHub Copilot 了!讓我們繼續探索如何有效運用快捷鍵來提升開發效率。

快捷鍵小技巧

在使用 Copilot 時,掌握幾個關鍵快捷鍵能大幅提升效率:

  • Tab:接受目前的建議
  • ESC:拒絕建議
  • Alt + \ (或 Option + \ on Mac):觸發 Copilot 建議
  • Ctrl + Enter:開啟 Copilot 建議面板,查看多個替代方案

這些快捷鍵就像是與 AI 對話的語言—— Tab 表示「好,就這樣」, ESC 表示「不,我要自己來」, Ctrl + Enter 則是「給我看看其他選項」。