GitHub Copilot 6/1 計費改制:Agent Mode 重度使用者該如何重組 AI 工具訂閱?

4 月底,我在 VS Code 內第一次看到 GitHub Copilot 跳出「週用量即將達到上限」的警告——對一個訂閱 Pro+ 的使用者來說,這是過去從未出現過的訊息。幾天後,我實際撞到了用量上限,Copilot 中斷了 Agent Mode 的工作。

後來才知道,這是 GitHub 在 4 月 27 日正式公告計費改制的前哨。但實際衝擊到底多大,要等到上週 GitHub 釋出 Billing Preview 工具後才能確認——把 4 月份 CSV 上傳到官方試算頁面後,看到的數字遠遠超出心理預期。**新制下的等效月費,是原本 Pro+ 月費的數十倍**。

這個變化指向整個 AI 工具產業的方向——OpenAI 也在 4 月 2 日把 Codex 改成 token-based 計費。這篇文章想跟還在使用 GitHub Copilot 的開發者分享:**如何檢視自己過往的用量、評估 6/1 之後的衝擊,並用手上的訂閱組合做出合理調整**。我會用真實帳單數據與官方文件佐證,給你一份可以立刻套用的決策框架。

...繼續閱讀 »

鐵人賽系列文章導讀 — 重啟挑戰:老派軟體工程師的測試修練

2025 年 8 月到 9 月,我參加了 iThome 鐵人賽,花了 30 天寫完「重啟挑戰:老派軟體工程師的測試修練」這個系列。一直沒有在部落格這邊正式介紹過,趁這個機會寫一篇導讀,讓大家在還沒有把 30 篇全部看完也能瞭解裡面在講什麼。

30 天的內容從最基本的「為什麼要寫測試」一路寫到 Testcontainers、.NET Aspire 整合測試、TUnit,每一篇都有技術介紹說明、程式碼範例,以及我自己在專案裡踩過的坑。如果你對 .NET 測試有興趣但不確定要從哪裡開始看,這篇可以幫你省點時間。

另外,完賽之後我把這 30 天的測試知識重新整理成了 29 個 Agent Skills,讓 AI 可以直接拿來用。後續會有一系列文章介紹 `dotnet-testing-agent-skills` 這個專案 — 從 Agent Skills 到 Agent Orchestration 的完整方案。所以這篇鐵人賽導讀也算是後續系列的起點,先從源頭說起。

...繼續閱讀 »

使用 Fine Code Coverage 取得程式碼覆蓋範圍

這是 Visual Studio 裡的一個延伸模組 (Extension),大約在四五年前在 Visual Stuidio 2019 時就已經發佈的一個工具,而我在過去帶新人教單元測試時都會介紹這個工具,透過這個工具取得測試的程式碼覆蓋範圍。

因為我平常的開發工具是使用 JetBrains Rider,已經有內建 Code Coverage 的功能,我只有在做教學或寫文件、找問題、重現別人問題情境的時候才會開啟 VS2022,在三月底四月初時這個工具產生 Code Coverage 的功能都還正常,但是卻在前幾天因為在整理文件時久違地開啟 Visual Studio 2022 並且要取得 Code Coverage 卻出現了異常,在找尋問題原因以及嘗試如何解決花了不少的時間,最後是順利地找到原因並且排除了狀況。於是就寫了這篇文章來介紹工具並說明要怎麼解決異常狀況。

...繼續閱讀 »

AwesomeAssertions / FluentAssertions 快速排除更新欄位

在開發系統時,如果測試情境的輸出會有許多資料類別並且要驗證很多欄位時,會利用 object graph 比對整個結果是否和預期一致。

現在我的專案裡有個 CustomerRootData 類別,裡頭屬性為十幾個不同型別的子集合,每個類別都有 UpdateTime、UpdateUser 這兩個欄位,但這兩個欄位是在程式執行當下才寫進去的,不屬於測試驗證的重點,在寫測試的時候常常陷入重複設定的地獄。

於是在 AwesomeAssertions / AwesomeAssertions Object Graphs 的架構下,想辦法在做比對時去做到比較方便省事的設定方法,讓我輕鬆地去排除指定的欄位。

在找尋資料、解決方法的同時,也讓我得知不一樣的處理方式,將這些處理方式用文章記錄下來,也提供給大家做個參考。

...繼續閱讀 »