使用 GitHub Copilot 強化日常開發流程:從 Jira 到 JUnit

Back
Category : News

身為開發者,我們早已超越將 AI 視為「類固醇版的自動完成」的階段。如今,真正的生產力提升來自於將 AI 深度整合到整個軟體開發生命週期 (SDLC) 中。

在本文中,我將帶領你走過我使用 GitHub Copilot 的日常工作流程——從透過 Model Context Protocol (MCP) 整合分析 Jira 票證,到最終確定架構方法、除錯,以及產生完整的測試套件。



1. 設定:工具與快捷鍵

在深入工作流程之前,你需要有合適的環境。

先決條件:

  • 一個 IDE(VS Code 或 IntelliJ IDEA)。
  • 已安裝 GitHub CopilotGitHub Copilot Chat 擴充功能。
  • Jira 整合: 為了讓 Copilot 能夠讀取你的 Jira 看板,你需要啟用 Jira Copilot 擴充功能(或如果你使用自訂企業 LLM 包裝器,則需設定 MCP 伺服器)。這能讓你在聊天中直接使用 @jira 來引用票證。

重要 Copilot 快捷鍵速查表:

  • 內嵌聊天: Cmd + I (Mac) / Ctrl + I (Windows) —— 這是你會使用到最重要的快捷鍵。
  • 開啟聊天面板: Cmd + Ctrl + I / Ctrl + Alt + I
  • 接受建議: Tab
  • 下一個/上一個建議: Option + ] / [ / Alt + ] / [
  • 手動觸發建議: Option + / Alt +



2. 第一階段:問題分析與理解(Jira/MCP 整合)

開發過程中最大的時間消耗並非撰寫程式碼,而是理解該寫「什麼」程式碼。將 Copilot 與 Jira 連結後,你就能跳過上下文切換的步驟。

不用再開啟 Jira、閱讀冗長的討論串並試圖解析實際需求,我會直接開啟 Copilot Chat 並輸入提示:

@jira Summarize ticket PROJ-1234. What are the core acceptance criteria and which specific microservices are likely impacted based on the description?

Copilot 透過整合解析票證,並提供簡潔的項目符號需求清單。如果票證內容模糊,我會使用 Copilot 產生澄清問題來詢問產品負責人。



3. 第二階段:確定方法

一旦需求明確,我不會立即開始撰寫程式碼。我會使用 Copilot Chat 作為討論平台來最終確定我的架構方法。

假設票證需要發布一個新的領域事件,我會開啟 Copilot Chat 並寫下:

I need to implement the requirements from PROJ-1234. I am considering using Apache ActiveMQ Artemis for asynchronous messaging between the Order Service and the Billing Service. Can you outline a high-level approach for this, including potential drawbacks like message duplication?

Copilot 就像資深的配對夥伴,驗證方法、提醒我邊緣案例(例如冪等性),並建議大致的步驟順序。這確保我在寫任何一行 Java 程式碼之前,邏輯都是穩固的。



4. 第三階段:撰寫程式碼、除錯與修正

方法確定後,我就開始實作。

撰寫程式碼:
我大量依賴 內嵌聊天 (Cmd/Ctrl + I)。我會在類別內選取一塊空白區域並提示:

Create a REST endpoint to process incoming claims. It should validate the payload, save it to the DB, and publish an event to the Artemis MQ topic 'claims.incoming'.

除錯與重構:
當出現問題時,Copilot 在根本原因分析上表現出色。如果複雜的串流操作拋出 NullPointerException 或未通過邏輯檢查,我會選取程式碼並在聊天中使用 /explain/fix 斜線指令。

/fix This method is throwing a ConcurrentModificationException when processing a batch of claims larger than 1000. How can we safely chunk or process this?

Copilot 不僅提供修正後的程式碼片段,還會解釋錯誤「為什麼」發生,幫助我在過程中學習。



5. 第四階段:單元與整合測試產生

撰寫測試對於零缺陷部署至關重要,但撰寫 Mockito 的樣板設定可能相當繁瑣。Copilot 大幅加速了這個過程。

當服務類別完成後,我會開啟它,按下 Cmd/Ctrl + I,然後輸入:

/tests Generate comprehensive JUnit 5 tests for this class using Mockito. Include edge cases for null inputs, database connection timeouts, and successful message publishing.

Copilot 會產生測試檔案,並包含 @Mock@InjectMocks 註解。

整合測試小技巧: 對於需要 Docker 或 Testcontainers 的複雜整合測試,我會提供 Copilot 一個我們程式碼庫中現有整合測試的範例,然後說:

Using this file as a template, generate an integration test for the new ClaimProcessingService.



結論

GitHub Copilot 已不再只是程式碼補全工具;它是一個具備上下文意識的開發助手。將它整合到每一個步驟中——從透過 MCP 理解 Jira 需求,到腦力激盪架構與產生 Mockito 測試套件——你可以省下數小時的樣板工作和上下文切換,讓自己專注於解決複雜的工程問題。

你已經將 Copilot 與你的專案管理工具整合了嗎?在留言中分享你最喜歡的提示吧!



延伸閱讀與資源

如果你想自己設定這個工作流程,以下是幫助你入門的官方文件:


免責聲明:本文所詳述的工作流程、架構概念與工程經驗皆為我個人心得。我使用了 AI 工具來協助此文字的格式化、結構化與措辭。

https://dev.to/shubhamp23/supercharging-your-daily-dev-workflow-with-github-copilot-from-jira-to-junit-fc7

https://www.worldprogramming.org/posts/supercharging-your-daily-dev-workflow-with-github-copilot-from-jira-to-junit-kvo09x