本文探討使用 SDD (規格驅動開發) 可能發生的問題與注意事項。
[SDD] SDD 實作 #2 - Vibe Coding 的問題
- 52
- SDD
本文探討使用 SDD (規格驅動開發) 可能發生的問題與注意事項。
本文探討 SDD (規格驅動開發) 的原理與實作, 並使用一個 Winform 專案 (使用 C#) 做為範例。
如果在 WSL 中已安裝 Ubuntu - 22.04 的環境,要如何升級到最新 LTS 版本呢?

在 Microsoft Store 的 Ubuntu 的描述當中,看到了這樣的設定:
sudo do-release-upgrade
在 Spec-Driven Development(SDD)逐漸被討論的今天,除了 GitHub 推出的 Spec-Kit,社群也出現了另一個有趣的專案 —— OpenSpec。
它的定位很清楚:用一份規格文件,驅動整個開發流程,並且盡可能保持「開放、可組合、可驗證」。
這篇文章會示範如何安裝與使用 OpenSpec,並分享我在實際操作時的心得。

在 iThome 舉辦的 iTHelp 2025 鐵人賽當中發表了 "莫名其妙就跟世界等級的 OpenSource 專案攪和了!?" 系列文。
其中 "EP 30 - .NET + AvaloniaUI + GStreamer 跨平台" 裡,有展示了透過 WSL 在 Ubuntu 的環境中使用 GStreamerPlayer 的應用程式 (透過 .NET + Avalonia UI + GStreamer 的技術),來透過 GStreamer 的技術播放影片。

dotnet 在 macOS 安裝後,要能完全移除其實需要一點 CLI 的知識外,也要多研讀一下 Microsoft Learn:
如何移除 .NET 執行階段和 SDK 的介紹。
或是使用 ".NET 解除安裝工具" 來進行。
但如果不介意統一用 brew 來安裝 dotnet 的時候;再加上一點點小技巧,那其實管理、使用與解除安裝時都會相對方便的。
在 iThome 舉辦的 iTHelp 2025 鐵人賽當中發表了 "莫名其妙就跟世界等級的 OpenSource 專案攪和了!?" 系列文。
其中 "EP 30 - .NET + AvaloniaUI + GStreamer 跨平台" 裡,有展示了在 macOS 當中使用 GStreamerPlayer 的應用程式 (透過 .NET + Avalonia UI + GStreamer 的技術),來透過 GStreamer 的技術播放影片。

如果不是很能接受 Homebrew (或稱 brew) 只能在 "Terminal (終端機)" 當中透過指令操作 (CLI) 的話,可以試試看 WailBrew 這套軟體。

雖然是一套滿近期才推出的軟體,但實際安裝操作後看起來開發作者是還挺用心的。
值得一用~~~
在測試 controller 時,在傳統三層式架構上,不但要注入 service 之外,還要注入許多的 repositories,還有許多的 ILogger<T>,若不透過測試工具處理,光是注入這些東西將會痛苦不堪
GStreamer 是一個開源、跨平台的多媒體框架,最初由 Erik Walthinsen 於 1999 年開發,目前由 GNOME 社群與多方貢獻者持續維護。它的主要目標是提供一個高度模組化且可擴展的架構,方便開發者在不同平台上處理涵蓋:音訊 (Audio)、影像 (Video)、字幕 (Subtitles) 以及串流傳輸 (Streaming)...等類型的多媒體資料流。

(圖片取自 gstreamer 官網)
在 macOS 上可以透過直接在 GStreamer 官網下載 *.pkg 或是透過 Homebrew 來安裝。
在現代 Web 應用程式開發中,快取是提升應用程式效能不可或缺的技術。在過去,我們會使用 IMemoryCache 做記憶體快取,或者使用 IDistributedCache 做分散式快取。
.NET 9 引入了全新的 HybridCache,它結合了記憶體快取(L1)和分散式快取(L2)的優勢,讓我們能夠在同一個 API 中享受兩層快取的效能提升,同時還提供了快取雪崩保護和標籤管理等進階功能。

ASP.NET Core 9,微軟終於把 OpenAPI 文件生成納入框架內建功能,推出了 Microsoft.AspNetCore.OpenApi。這代表我們不再需要額外的第三方套件,就能直接在專案中生成 OpenAPI 文件,並且支援最新的 OpenAPI 3.1 與 JSON Schema draft 2020-12。

這篇文章要分享我最近在研究 Microsoft.Extensions.Http.Resilience 與 Microsoft.Extensions.Http.Polly 的心得,特別是 Retry 策略 的使用方式與效能比較。
在 .NET 8 之後,微軟官方推出了新的 Resilience Handler,它內建在 Microsoft.Extensions.Http.Resilience 套件中,不再需要額外安裝 Polly 套件就能使用 Retry、Circuit Breaker、Timeout 等彈性策略。
GitHub 推出的 Spec-Kit 嘗試用 SDD(Spec-Driven Development) 的方式,把「規格 → 技術規劃 → 任務拆解」這條鏈路自動化,並且支援多種 AI CLI Agent,包括 Claude Code。
這篇文章會示範如何用 Claude Code + Spec-Kit,從零開始建立一個規格驅動的開發流程。

在高併發的 Web API 環境中,瞬間湧入的請求就像演唱會開賣時的粉絲潮水,沒有控管就會把系統直接「擠爆」。
這篇文章要分享一個我在 ASP.NET Core 9 專案中實作的 限流 + 排隊機制,它不只保護後端服務,還能讓用戶感覺到「公平」。

這個情境應該算常見,就是在 Production (Release), Development (Debug) 要使用不同的 Firebase Project 方便使用
嚴格來說應該還可以搭配更多個 Firebase Project
發現社群開源的 Claude Code Router(CCR),它可以在 Claude Code 的介面下,透過設定檔把請求路由到不同的 LLM 提供商,例如 OpenRouter、DeepSeek、Ollama、Gemini 等。
這篇記錄我用 CCR + OpenRouter 串接多家模型的過程與心得。

上篇使用 Spec Workflow 需求 → 設計 → 任務 → 實作,這樣的開發流程 SDD(Spec-Driven Development)深得我心,這次來試試 Claude Code PM(CCPM),看看是否能滿足我的開發流程?

往往我們在使用 AI 助手時,都期望隨面丟一句話就期望 AI 能給你完整的答案,但其實我們都要花時間在調整 AI 給出來的答案,Spec Workflow MCP 讓 Claude Code 遵守軟體工程的路徑:需求分析 → 架構設計 → 任務分解 → 實現程式碼的工作流工具,目的是在引導 AI 系統化地完成軟體開發,確保程式碼與業務需求的一致性。
另外一個是 Bug Fix Workflow,這個功能的流程:報告 → 修復 → 驗證,目的是在引導 AI 分析根本原因,修正它,並驗證結果,讓修復流程更有效率。

今天同仁系統發生錯誤訊息,該段語法是透過Linked Server去另一台Server抓取一張Table的資料。結果發生了
訊息 7347,層級 16,狀態 1,行 20
連結伺服器 '127.0.0.1' 的 OLE DB 提供者 'MSOLEDBSQL' 傳回與資料行 '[127.0.0.1].[dbtemp].[dbo].[vwtb1].cname' 應有資料長度不符的資料。(最大) 資料長度應該為 10,而傳回的資料長度為 13。
的錯誤。
因為現在模型疊代速度很快,會一直有新模型或是新版本,因此就會開始有管理上的問題,我們會需要確保模型的淘汰時間跟部署狀態,雖然可以從 Azure AI Foundry 看到部署的模型跟淘汰的時間,但是我們建立的 Account 很多的時候就會變的麻煩了,此時我們可以透過 Api 來處理跟匯總這些資料,本文就來實做檢查所有部署的模型資料跟淘汰時間。
將 Windows 11 Pro 安裝使用 ChatGPT Codex CLI 的過程記錄下來,不過依照目前版本更迭速度這麼快的情況,可能過一兩個月又會大大不同了。
這個情境應該滿常見,就是在 Production (Release), Development (Debug) 要使用不同的 Bundle/Application ID 方便區別
很久沒注意到微軟文件庫有甚麼變化了,而且這次的功能真不錯。