系列:從鐵人賽到 Agent Orchestration — AI 自動建立 .NET 測試的完整方案(1/10)
從鐵人賽 30 天到 29 個 Agent Skills — 背景、願景與知識體系
- 197
- 測試相關
系列:從鐵人賽到 Agent Orchestration — AI 自動建立 .NET 測試的完整方案(1/10)
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 的完整方案。所以這篇鐵人賽導讀也算是後續系列的起點,先從源頭說起。
Vibe Coding 課程的繁榮與隱憂:當非技術出身的人開始販售「人人都能寫軟體」的夢想,轉職者與初階工程師該如何判斷?
GetCreationTimeUtc / GetCreationTime 其實都會有同樣的問題。
更正確地說 .NET 對檔案的 CreationTime 在 Windows 與 Unix-like (macOS、Linux…等,後面都統一稱呼 Linux) 的 OS 上定義不同。
Reference:https://github.com/bubbliiiing/yolov4-pytorch
Key Word:WSL2、Bubbliiiing、Pytorch YOLOv4、Object Detection、RTX4060、Github License Issue、Roboflow、CrowdHuman
C# 14 新功能還有一些比較無法長篇描述的就集中在這裡一次說完。
在微服務架構中,一個使用者請求可能跨越多個服務,當問題發生時,如何追蹤這個請求到底經過了哪些服務?每個服務做了什麼事?花了多少時間?這就是「可觀測性(Observability)」要解決的問題。
本篇文章將介紹如何在 ASP.NET Core 10 微服務中整合 OpenTelemetry、Serilog、Jaeger 與 Aspire Dashboard,建立完整的分散式追蹤與結構化日誌方案。

目前手上常用來建置與發佈程式的 CI/CD 服務與架構系統,大略可簡化為 "GitLab 的雲端服務 + 地端主機上所運作的 Docker"。
前篇已經聊過關於 Extension members 的一些基本操作,這裡補充一些前篇沒提到的部分。
目前手上常用來建置與發佈程式的 CI/CD 服務與架構系統,大略可簡化為 "GitLab 的雲端服務 + 地端主機上所運作的 Docker"。
如果要在 C# 14 的眾多新功能中挑選一個最令我心動的,一定是 Extension members。這項功能不僅是對既有 this extension methods 的延展,而且是進一步的語言層級提升、更為貼近原生成員的使用體驗。
不知道大家是否有這樣的困擾,使用Google Antigravity要開啟瀏覽器來進行除錯或測試的時候,有時候瀏覽器的開啟就是卡卡的,不順利,這個問題一個設定,也許就能處理。
在雲端原生 (Cloud Native) 的世界裡,無伺服器 (Serverless) 架構已經不是什麼新鮮事。今天,我們就來聊聊微軟 Azure 上的無伺服器解決方案 — Azure Function App,並實際走一遍如何用 C# 開發,最後再透過 GitHub Actions 帥氣地自動部署上去。

Azure App Service 是微軟提供的全託管式 Web 應用程式平台,讓開發者能專注於程式開發,不需要擔心基礎架構的管理。搭配 GitHub Actions,可以實現完全自動化的持續部署流程。這篇文章會介紹如何使用 Azure App Service 部署和管理 Web 應用程式,以及透過 GitHub Actions 實現 CI/CD 自動部署。

在前端開發中,UI/UX 設計是一個不可迴避的環節。傳統的做法是設計師手工繪製 Figma,開發者再根據設計稿實作。但這樣有個問題:溝通成本高、反覆調整多、時程壓力大。我一直在尋找一個更高效的方式,能否讓 AI 幫我快速產生設計元素,然後一鍵整合成完整介面?Pencil 搭配 UI/UX Pro Max Skill 就是這樣的工具。它透過 AI 助手的對話能力,讓你用自然語言描述需求,自動產生設計元素和設計稿。
本文會分享我使用 Pencil 的實務經驗,希望能幫助你建立一個「需求 → 設計 → 開發」的快速迴圈。

(圖片取自 Gogoro 官網活動)
2026/1/26~2026/2/1 有到 7-ELEVEn 換電站交換電池的 Gogoro 車主,可獲得一點小確幸唷!
最近在研究 AI 進行 E2E 測試,我選擇 Microsoft 開發的 Playwright。它支援多瀏覽器(Chromium、Firefox、WebKit)、自動等待機制,還有一個很方便的錄製功能,可以直接操作網站產生測試腳本,搭配 Claude、Copilot、Gemini 又可以解省錄製、除厝的時間,本篇會簡單介紹我的使用方式。
複合指派運算子 (compound assignment operators) 早就存在於 C# 中,在 C# 14 開放了可以自行定義這類複合運算子的功能,本篇文章說明如何自行定義,且這個自行定義在程式上的意義又有甚麼不一樣。
field 關鍵字首見於 C# 13,當時是預覽版功能,並未正式釋出;時至今日的 C# 14 成為了正式版本的功能。
開發公開 API 時,防範惡意濫用是不可或缺的一環。本文將探討如何運用 ASP.NET Core 建構安全防護機制,為允許匿名存取的 Web API 提供堅實保障。

續上篇 .NET 9 HybridCache 實戰,我們已介紹 Server\-Side 的快取架構(L1 記憶體快取、L2 分散式快取)。本篇將聚焦在 Client-Side 的快取機制(HTTP Cache):透過正確設定 HTTP 標頭,讓瀏覽器優先使用本地快取,降低伺服器負載並提升使用者體驗。
本篇會以實作程式碼示範各種 Cache-Control 指令的行為差異與適用情境。

今年是移居荷蘭的第三天,該適應的,不該適應的,都適應了 :D
2025 最有感的是 AI 的爆炸進展,無論生活或工作中,都高度的依賴 AI 工具
透過 .NET API 的 Process 所提供記憶體資訊的屬性運用,可以自我監測 .NET 應用程式佔據記憶體的狀況。
以下列舉三個屬性來介紹:
| 屬性 | 意義 |
| PagedMemorySize64 | 可被分頁到磁碟的記憶體數字 |
| PrivateMemorySize64 | 程式跟系統請求使用的專用記憶體數字(不會跟其他行程共用的部分) |
| WorkingSet64 | 實際駐留在 RAM 的記憶體數字 |
使用 EmbeddedAttribute 處理一個罕見的情境。
雖然網頁版後台已經有限度的支援了 Markdown 語法,但對於熟習 Markdown 的作者們來說還是稍嫌麻煩,但點部落太多年了,包袱是存在的,我們無法直接大幅度的變動,因此提出替代方案,即日起支援 windows 本地端 Markdown Monster 編輯器的部落格發佈功能。