[isTMS]課程 - GitHub Copilot實戰
 

初探 GitHub Copilot

程式碼自動生成與重構的魔法之旅

前言 : AI Pair Programming 的誕生

還記得第一次寫程式的時候嗎?那種在鍵盤上敲打著重複邏輯、複製貼上類似程式碼片段的日子。如果有人告訴你,未來會有一個 AI 助手,能夠在你打下第一個註解的瞬間,就猜到你想寫什麼程式碼,並且幫你輸入,你會相信嗎?

歡迎來到 GitHub Copilot 的世界,一個改變開發者工作方式的革命性工具。它不是要取代程式設計師,而是成為你最得力的結隊編程夥伴(Pair Programmer)。

在這個課程當中,我們將會透過一連串的實際案例、影片介紹、和詳細說明,來看看這位 AI 助手如何在日常開發工作中大顯身手。

GitHub Copilot 是什麼?

GitHub Copilot 是由 GitHub 與 OpenAI 合作開發的 AI 程式碼建議工具。它基於大量開源程式碼訓練而成,能夠理解程式碼的上下文(Context),並在你編寫程式時提供智慧化的程式碼建議。

一開始的時候,你會以為這只是程式碼自動完成(Auto-completion)的加強版,但真正厲害的是,它能夠理解你的意圖。當你寫下一段中文註解描述想要做什麼的時候,Copilot 就能夠生成完整的程式碼邏輯;當你寫出第一行程式碼後,它也能接著預測出後續的整個程式碼區塊。

開發者使用 GitHub Copilot 有何好處?

在現代軟體開發中,我們經常面對以下挑戰:

  1. 重複性工作耗時:計算折扣、格式化資料、驗證輸入等邏輯經常需要重複撰寫
  2. 樣板程式碼(Boilerplate Code)冗長:建立類別、撰寫屬性、實作介面等需要大量制式化程式碼
  3. 重構成本高:當需求變更時,改寫現有程式碼往往費時費力
  4. 學習曲線陡峭:新框架、新語言的語法和最佳實踐需要時間摸索

GitHub Copilot 正是為解決這些痛點而生。
它能夠:

  • 自動生成重複性程式碼,讓開發者專注於業務邏輯
  • 提供符合最佳實踐的程式碼建議
  • 快速進行程式碼重構與優化
  • 幫助開發者學習新技術和程式設計模式

實戰案例:水果價格計算器的演進之路

讓我們透過一個簡單但實用的例子——計算水果折扣價格——來體驗 Copilot 的強大能力。

場景設定

想像你正在開發一個電商系統的價格計算模組。第一個需求超級簡單:計算蘋果的折扣後價格。

第一步:從註解開始的魔法

在傳統開發方式中,你可能會直接開始寫程式碼。但在 Copilot 的世界裡,一切從「清楚表達意圖」開始。

首先,請透過 git 指令 clone 整個範例專案, VS Code 開啟:

git clone https://github.com/isdaviddong/HOL_Copilot_First.git
cd HOL_Copilot_First
code .

這是一個 .net 的 Console 應用程式, 你會看到內容如下:

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

這段程式碼本身沒什麼特別,但接下來才是見證奇蹟的時刻。

第二步:AI 自動推論與生成

當你寫完了上面這樣的蘋果折扣計算邏輯後,只需在第三行結尾按下 Enter 鍵或 Alt + \, Copilot 會自動推論:「既然你計算了蘋果的價格,接下來可能需要計算其他水果的價格」。

接著,你可能會看到類似這樣的建議:

//計算香蕉
double bananaPrice = 25;
double bananaDiscount = 0.15;
Console.WriteLine("香蕉折扣後價格是:" + bananaPrice * (1 - bananaDiscount));

//計算橘子
double orangePrice = 30;
double orangeDiscount = 0.2;
Console.WriteLine("橘子折扣後價格是:" + orangePrice * (1 - orangeDiscount));

這就是 Copilot 的第一個魔法:模式識別與自動生成。它從你的程式碼中學習模式,然後自動產生類似的邏輯。

操作影片

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 (必裝):提供程式碼建議功能
    • 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 則是「給我看看其他選項」。


相關資源: