GitHub Copilot 作為 AI 程式碼輔助工具,已成為許多開發者的日常助手。它能根據程式碼上下文提供即時建議,加速開發流程。除了程式碼自動完成和建議外,Copilot 還具備 Chat 和 Inline Chat 功能,讓開發者能以互動方式與 AI 溝通,解決程式碼問題、探索更佳的解決方案,甚至生成新的程式碼片段。此外,Copilot 也支援命令列介面(CLI),讓開發者在終端機環境下也能享受到 AI 輔助的便利性。除了 Copilot 之外,其他 AI 程式設計工具如 Amazon CodeWhisperer 和 Meta 的 Code Llama 也值得關注,它們各自具有不同的優勢和功能,例如多語言支援、安全檢查、開源社群等。

GitHub Copilot 的使用與功能介紹

GitHub Copilot 是一項強大的開發工具,能夠根據程式碼上下文提供自動化完成建議,幫助開發者加快開發速度並提升程式碼品質。以下是玄貓針對 GitHub Copilot 的詳細介紹與使用。

搭配 GitHub 開始使用 Copilot

首先,你需要建立一個 GitHub 帳戶。GitHub 是一個線上版本控制和協同開發平台,根據 Git 工具提供程式碼審查和專案管理功能。完成帳戶設定後,點選右上角的個人頭像,選擇「Copilot」,然後啟用 GitHub Copilot。根據你的需求選擇合適的計劃並完成付費資料填寫(如果不符合免費帳戶條件)。

秘密掃描與依賴性審查

GitHub Copilot 提供多種安全與功能性特點來增強開發流程:

  • 秘密掃描:可以檢測出在私有儲存函式庫中提交的金鑰和代幣等機敏資訊。
  • 依賴性審查:顯示依賴性變更的影響,並在合併提取請求時提供漏洞詳細資料。

使用環境:Codespaces 與 Visual Studio Code

Copilot 提供兩種使用方式:透過 Codespaces 和 Visual Studio Code(VS Code)擴充套件。Codespaces 是一個根據雲端的開發環境,執行在 VS Code 上。你也可以選擇在桌面版 VS Code 上安裝 Copilot 擴充套件。本文將重點介紹如何在 VS Code 中使用 Copilot。

啟用與設定 Copilot

  1. 啟動 VS Code:開啟 VS Code 主畫面,左側可以看到活動欄,這是一組圖示,用於載入檔案和資料夾。
  2. 安裝擴充套件:點選活動欄中的第五個圖示(方塊圖示),進入擴充套件安裝區域。在搜尋欄中輸入「GitHub Copilot」,選擇最上方的選項並點選安裝。
  3. 確認啟用:當你看到右下角的 Copilot 圖示時,表示服務已經成功啟用。

使用範例:生成 Python 程式碼

假設你正在寫一個 Python 程式,希望印出「Hello, Copilot!」:

print("Hello, Copilot!")

這段程式碼是由以下指令產生的:

# 寫一個「Hello, Copilot!」程式

# 字元表示註解,這是指示 Copilot 生成程式碼的其中一種方式。Copilot 根據檔案副檔名(.py)來判斷使用哪種程式語言。

開始編寫程式碼

當你開始輸入程式碼時,Copilot 會即時提供建議並生成程式碼片段。例如,當你輸入 Python 函式標頭:

def find_factorial(number):

Copilot 會立即建議完整的函式內容:

def find_factorial(number):
    if number == 0:
        return 1
    else:
        return number * find_factorial(number - 1)

這段生成的程式碼稱為「幽靈文字」,以灰色顯示。如果這段程式碼符合你的需求,按 Tab 鍵接受;如果不符合,按 Escape 鍵跳過。

動態互動與程式碼替換

當你懸停在生成的程式碼上時,會看到更多選項:

  • 接受建議:按 Tab 鍵或點選「接受」按鈕。
  • 逐字接受:按下 Accept Word 鍵。
  • 顯示更多選項:點選三個點以顯示更多功能。

你還可以使用快捷鍵來切換不同的建議版本:

  • 在 macOS 上:Option (⌥) 或 Alt+](下一個建議)、Option (⌥) 或 Alt+[(上一個建議)。
  • 在 Windows 上:Alt+](下一個建議)、Alt+[(上一個建議)。
  • 在 Linux 上:Alt+](下一個建議)、Alt+[(上一個建議)。

按 Ctrl+Enter 可開啟新標籤頁顯示十種替代解決方案。

註解互動

除了直接生成程式碼外,Copilot 還可以透過註解進行互動。例如:

# q: 傳統物件導向中的類別是什麼?

Copilot 會回應:

# a: 一個類別是建立物件的藍圖。物件具有相關聯的屬性和方法(函式)。Python 中幾乎所有事物都是物件。

使用 GitHub Copilot Chat 提升程式開發效率

GitHub Copilot Chat 是一款強大的開發工具,它結合了 OpenAI 的 GPT-4 和 GPT-3.5 Turbo,以及 Microsoft 自有的語言模型,專為程式開發環境設計。這款工具不僅能夠幫助你理解程式碼、解決錯誤,還能夠提供豐富的技術資訊和建議。以下是 GitHub Copilot Chat 的詳細使用。

安裝與啟動 GitHub Copilot Chat

要在 Visual Studio Code (VS Code) 中使用 GitHub Copilot Chat,首先需要安裝相關擴充功能。開啟 VS Code,搜尋「GitHub Copilot Chat」並進行安裝。安裝完成後,你會在左側工具欄看到一個新的圖示,形狀像兩個對話氣泡。

基本操作與快捷鍵

GitHub Copilot Chat 提供了多種快捷鍵和操作選項,讓你能夠更高效地進行程式開發。以下是一些常用的快捷鍵和功能:

  • 清除所有聊天紀錄:點選左上角的垂直線條和小十字圖示。
  • 反饋系統:點選人像和對話氣泡圖示,可以對系統提出反饋。
  • 檢視歷史聊天記錄:點選時鐘圖示,可以檢視之前的聊天紀錄。
  • 在編輯器中使用聊天:點選三個點,可以將聊天視窗顯示在編輯器中。

工作區檔案分析

使用 @workspace 快捷鍵,可以分析當前工作區中的檔案。例如,如果你有一個 Python 的計算器程式,可以輸入以下指令:

@workspace /explain

這樣,Chat 會分析程式碼並提供詳細的解釋。

內容解密:

@workspace /explain 命令會讓 GitHub Copilot Chat 分析當前工作區中所有開啟的檔案,並根據你的需求提供相關解釋或建議。這對於理解複雜程式碼或快速掌握新專案非常有幫助。

程式碼片段分析與修正

你也可以對特定程式碼片段進行分析和修正。選取你想要分析的程式碼片段,然後按右鍵選擇相關選項。這樣,Chat 會專注於這個片段並提供詳細的解釋或修正建議。

內容解密:

這種方式讓開發者能夠更精確地針對特定問題進行討論和解決,而不需要處理整個檔案的複雜性。選取程式碼片段並按右鍵後,Chat 會顯示一個選單,讓你選擇要進行的操作,如解釋、修正或生成測試案例。

建立新專案或功能

使用 /new 快捷鍵,可以建立新專案或功能的架構。以下是一些範例:

/new Create a Python script to scrape data from a website
/new Generate a Java class for a student with fields for name, age, and grade
/new Build a simple REST API using Flask

內容解密:

/new 命令讓 GitHub Copilot Chat 根據你的需求生成新專案或功能的基本架構。這對於快速開始新專案或新增新功能非常有幫助。Chat 會提供主要步驟和相關程式碼列表,讓你可以立即開始編寫程式。

建立 Jupyter Notebook

使用 /newNotebook 快捷鍵,可以建立新的 Jupyter Notebook。以下是一些範例:

/newNotebook Create a notebook to visualize data from a csv file using matplotlib
/newNotebook Create a notebook to preprocess and clean a dataset for machine learning

內容解密:

Jupyter Notebook 是一種互動式計算環境,適合進行資料分析和機器學習等任務。/newNotebook 命令會根據你的需求生成相應的 Notebook 機架結構及範例程式碼。

終端機操作輔助

使用 /terminal 快捷鍵,可以獲得有關終端機或命令列操作的幫助。例如:

/terminal What is the command to list all environment variables?
/terminal How do I use grep to find specific text in multiple files?

內容解密:

/terminal 命令讓 GitHub Copilot Chat 提供有關終端機操作的詳細說明和範例命令。這對於初學者來說非常有幫助,因為它可以快速解決常見問題並提供正確的命令。

VS Code 功能輔助

使用 @vscode 快捷鍵,可以獲得有關 VS Code 功能、導航、組態或擴充功能的幫助。例如:

@vscode How do I split the editor into multiple windows?
@vscode How can I customize my keyboard shortcuts?

內容解密:

VS Code 是一款功能強大且靈活的程式編輯器。@vscode 命令讓 GitHub Copilot Chat 提供有關 VS Code 各種功能和組態的詳細說明和指導。這對於提升開發效率和掌握編輯器技巧非常有幫助。

API 開發輔助

使用 /api 快捷鍵,可以獲得有關 API 開發、測試或整合的幫助。例如:

/api How do I make a POST request with JSON data in Node.js?
/api How can I handle CORS issues in an Express.js API?

內容解密:

API 是現代軟體開發中不可或缺的一部分。/api 命令讓 GitHub Copilot Chat 提供有關 API 開發、測試和整合等方面的詳細說明和範例程式碼。這對於後端開發者來說特別有用。

清除聊天紀錄

如果需要清除聊天紀錄,可以使用 /clear 快捷鍵。

內容解密:

清除聊天紀錄有助於保持對話焦點和隱私保護。使用 /clear 命令可以快速清除所有聊天紀錄。

行內聊天

GitHub Copilot Chat 還支援行內聊天功能。選取程式碼片段後按下 Ctrl+I (Windows) 或 Cmd+I (macOS),即可啟動行內聊天視窗。

內容解密:

行內聊天功能讓開發者在不離開編輯器的情況下直接討論程式碼問題。這樣可以保持「流」狀態(flow state),提升工作效率。

概述

GitHub Copilot Chat 是一款強大且靈活的工具,能夠顯著提升程式開發效率。無論是新手還是經驗豐富的開發者都可以從中受益。隨著技術的不斷進步,未來可能會出現更多具有智慧化特徵之工具與功能,

透過練習與持續學習、熟悉及運用其多樣化操作捷徑及功能協助能力探索不同應用場景與潛力之所在持續更新與進步其實是每位開發者必須保持的一份心態與行動。

透過GitHub Copilot Chat所帶來之各類別功能協助實際應用上可利用其多樣化之操作捷徑與邏輯推導辨識能力完成不少之前曾經遇到困難之問題。

希望此篇文章可為各位提供一些參考資訊或技巧減少各類別程式開發過程中的瓶頸問題及找出更佳之做法進而提升各位之工作效率及品質不斷進步提升競爭力與技術能力同時也可嘗試探索其更多潛力應用場景與可能性未來持續更新與進步其實是每位開發者必須保持的一份心態與行動,

玄貓在此預祝大家程式開發事半功倍創造奇蹟!

使用 AI 協助程式設計工具:從 GitHub Copilot 到其他工具的探索

GitHub Copilot 已經成為現代開發者必備的 AI 工具,大幅提升了編碼效率和程式碼品質。本文將探討 Copilot 的主要功能,以及如何在不同環境中使用它。此外,我們也會簡要介紹其他值得關注的 AI 程式設計工具。

互動式程式設計:Chat 和 Inline Chat

Copilot 提供了兩種主要的互動方式:Chat 和 Inline Chat。這些功能讓開發者可以在編碼過程中直接與 AI 互動,快速取得建議和解釋。

使用 Inline Chat 建立和改程式式碼

假設我們希望建立一個氣泡排序(Bubble Sort)的函式,可以使用以下提示:

Prompt: Create a function for a bubble sort

Copilot 會生成相應的程式碼。如果我們想知道是否有更快速的排序演算法,可以選擇程式碼並執行 Inline Chat。以下是反應:

Prompt: Create a faster sort than the bubble sort

Copilot 會建議使用快速排序(Quick Sort),並以「diff 模式」顯示兩種演算法的比較。這樣的比較方式有助於理解不同演算法之間的差異。

內容解密:

Inline Chat 是一個強大的功能,讓開發者可以在編碼過程中直接與 AI 互動,取得即時建議和改進。例如,當我們建立了一個氣泡排序函式後,可以使用 Inline Chat 提示「Create a faster sort than the bubble sort」,來探索更高效的排序演算法。Copilot 會根據這個提示,提供快速排序的實作方式,並以「diff 模式」顯示兩者之間的差異。這樣的設計不僅提升了編碼效率,還讓開發者能夠更好地理解不同演算法之間的優缺點。

單一檔案與多檔案開發

在標準的軟體開發專案中,IDE 中通常會有許多檔案,每個檔案都扮演著不同的角色。以 React 作為例子,我們會看到 .jsx、.js、HTML、CSS、JSON 和 .env 檔案等。這些檔案對於 Copilot 來說是一個巨大的幫助,因為它可以根據當前檔案和相關檔案提供更準確的建議。

內容解密:

Copilot 的強大之處在於它能夠理解上下文。在多檔案開發環境中,Copilot 不僅會分析當前檔案中的內容,還會考慮到其他開啟檔案中的相關部分。這種上下文理解能力讓 Copilot 能夠提供更準確且有意義的程式碼建議。例如,在 React 專案中,Copilot 不僅會分析 .jsx 和 .js 檔案中的元件邏輯,還會考慮到 HTML 和 CSS 檔案中的樣式和結構,從而提供更全面的程式碼補全和建議。

命令列介面(CLI)中的 Copilot

Copilot 不僅可以在 IDE 中使用,還支援在命令列介面(CLI)中執行。以下是如何在 CLI 中安裝和使用 Copilot 的步驟:

  1. 安裝 GitHub CLI:

    gh auth login
    
  2. 安裝 Copilot 延伸模組:

    gh extension install github/gh-copilot
    
  3. 升級延伸模組:

    gh extension upgrade gh-copilot
    

使用 Copilot 說明和建議命令

假設我們希望瞭解 xcopy 命令的用法,可以使用以下提示:

Prompt: gh copilot explain xcopy

Copilot 會提供詳細的說明。如果我們需要建議命令來檢視和設定系統環境變數,可以使用以下提示:

Prompt: gh copilot suggest

然後指定需要幫助的命令型別(如 shell 命令、gh 命令或 git 命令),並描述所需的操作。

Prompt: What are the commands for viewing and setting environment variables in the system?

Copilot 會根據引數提供相應的命令建議。

內容解密:

在 CLI 中使用 Copilot 的優勢在於它能夠快速幫助開發者理解和生成命令列操作指令。透過安裝 GitHub CLI 和 Copilot 延伸模組後, 開發人員可以使用 gh copilot explain 指令來取得詳細指令和 gh copilot suggest 指令來取得相應命令指引, 極大地提升了命令列操作效率, 特別是對於那些需要頻繁編輯組態檔案或者處理複雜系統變數的人員來說, 減少了需要查閱檔案或者依賴團隊經驗的人力成本, 提供了一種智慧化、自動化的方式來管理命令列操作。

Copilot Partner Program

GitHub 的 Copilot Partner Program 是一個擴充套件平台,旨在整合第三方工具以提升開發者體驗。一些早期合作夥伴包括 Splunk、New Relic 和 Datadog ,這些工具都在資料分析和監控領域具有強大功能。

資料函式倉管理:DataStax 的 Astra DB

DataStax 是 Copilot Partner Program 的早期合作夥伴之一,提供 Astra DB——一個向量資料函式庫專為先進 AI 應用設計。透過外掛整合,開發者可以使用 Chat 生成資料函式庫結構和後設資料相關的程式碼建議。

Prompt: Tell me about my chat_prod database
Prompt: Tell me about the schema of a table
Prompt: Write a SQL query to read from the chat table

內容解密:

DataStax 的 Astra DB 與 Copilot 的整合為資料函式倉管理帶來了革命性的變化。透過外掛整合, 開發人員可以利用 Chat 功能來快速生成資料函式庫結構和元資料相關程式碼, 極大地提升了開發效率. 使用者只需輸入簡單指令, Copilot 就能自動生成符合編碼標準且可維護性高的程式碼, 減少了因手動編寫帶來的人為錯誤, 提供了一種智慧化、自動化管理資料函式庫結構與資料操作程式碼生成方式.

其他 AI 程式設計工具

除了 GitHub Copilot ,還有許多其他 AI 程式設計工具值得關注。以下是其中幾個主要工具:

Amazon CodeWhisperer

Amazon CodeWhisperer 是一個強大的 IDE 外掛,支援多種程式語言並提供安全性和準確性保證。它有兩個版本:免費版(Individual)和付費版(Team)。免費版提供基本功能如程式碼建議、安全檢查等。

Features:
- Code suggestions for multiple programming languages.
- Security checks and open-source code tracking.
- Integration with popular IDEs like VS Code and PyCharm.

Meta 的 Code Llama

Meta 的 Code Llama 是一款開源 AI 程式設計工具,旨在提供高效且準確的程式碼補全功能。它根據先進的人工智慧模型訓練而成,適合各種程式設計任務。

Features:
- Open-source and community-driven development.
- High accuracy in code completion.
- Support for multiple programming languages.

概論及未來展望

AI 程式設計工具如 GitHub Copilot 已經顯著提升了開發者的工作效率和程式碼品質。隨著技術的不斷進步,未來可能會出現更多功能強大且智慧化程度更高的 AI 程式設計工具。

  graph TD;
    A[AI 程式設計工具] --> B[GitHub Copilot];
    A --> C[Amazon CodeWhisperer];
    A --> D[Meta Code Llama];
    B --> E[Chat 功能];
    B --> F[Inline Chat 功能];
    B --> G[CLI 支援];
    C --> H[多語言支援];
    C --> I[安全檢查];
    D --> J[開源社群];

此圖示展示了目前主要的一些AI程式設計工具及其功能特點. GitHub Copilot 提供了豐富且實用性強功能特點包括Chat、Inline Chat 功能以及CLI 支援等;而 Amazon CodeWhisperer 主要針對多語言支援與安全檢查方面進行最佳化;Meta Code Llama 作為開源社群專案則以社群驅動為主.

內容解密:

AI 程式設計工具如 GitHub Copilot 已經成為現代開發者必備的一環;其強大功能包括Chat、Inline Chat 功能以及CLI 支援, 提供了極為實用且高效化編碼方式. 隨著技術不斷進步, 未來可能會出現更多類別似Amazon CodeWhisperer及Meta Code Llama等功能強大且智慧化程度更高的人工智慧編碼輔助型軟體. 每一個AI程式設計輔助型軟體都有各自優勢點, 開發人員可根據實際需求選擇最適合自己專案開發情況.