推薦文章

Claude Code 通過 OpenSpec 實現規格驅動開發

在 Spec-Driven Development(SDD)逐漸被討論的今天,除了 GitHub 推出的 Spec-Kit,社群也出現了另一個有趣的專案 —— OpenSpec。
它的定位很清楚:用一份規格文件,驅動整個開發流程,並且盡可能保持「開放、可組合、可驗證」。

這篇文章會示範如何安裝與使用 OpenSpec,並分享我在實際操作時的心得。

...繼續閱讀 »
on yc421206

在 WSL 的 Ubuntu 執行 .NET 裝置端應用 - 以 GStreamerPlayer 為例

在 iThome 舉辦的 iTHelp 2025 鐵人賽當中發表了 "莫名其妙就跟世界等級的 OpenSource 專案攪和了!?" 系列文。

其中 "EP 30 - .NET + AvaloniaUI + GStreamer 跨平台" 裡,有展示了透過 WSL 在 Ubuntu 的環境中使用 GStreamerPlayer 的應用程式 (透過 .NET + Avalonia UI + GStreamer 的技術),來透過 GStreamer 的技術播放影片。

...繼續閱讀 »
on jamestsai

在 macOS 中使用 GStreamer - 透過 Homebrew 安裝 GStreamer

GStreamer 是一個開源、跨平台的多媒體框架,最初由 Erik Walthinsen 於 1999 年開發,目前由 GNOME 社群與多方貢獻者持續維護。它的主要目標是提供一個高度模組化且可擴展的架構,方便開發者在不同平台上處理涵蓋:音訊 (Audio)、影像 (Video)、字幕 (Subtitles) 以及串流傳輸 (Streaming)...等類型的多媒體資料流。

Gstreamer Logo

(圖片取自 gstreamer 官網)

在 macOS 上可以透過直接在 GStreamer 官網下載  *.pkg 或是透過 Homebrew 來安裝。

...繼續閱讀 »
on jamestsai

.NET 9 的混合式快取 HybridCache

在現代 Web 應用程式開發中,快取是提升應用程式效能不可或缺的技術。在過去,我們會使用 IMemoryCache 做記憶體快取,或者使用 IDistributedCache 做分散式快取。

.NET 9 引入了全新的 HybridCache,它結合了記憶體快取(L1)和分散式快取(L2)的優勢,讓我們能夠在同一個 API 中享受兩層快取的效能提升,同時還提供了快取雪崩保護和標籤管理等進階功能。

...繼續閱讀 »
on yc421206

Microsoft.Extensions.Http.Resilience 效能比較

這篇文章要分享我最近在研究 Microsoft.Extensions.Http.Resilience 與 Microsoft.Extensions.Http.Polly 的心得,特別是 Retry 策略 的使用方式與效能比較。

在 .NET 8 之後,微軟官方推出了新的 Resilience Handler,它內建在 Microsoft.Extensions.Http.Resilience 套件中,不再需要額外安裝 Polly 套件就能使用 Retry、Circuit Breaker、Timeout 等彈性策略。

...繼續閱讀 »
on yc421206

用 ASP.NET Core Web API 實作排隊系統

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

畫一張,有關排隊、限制流量的圖片

...繼續閱讀 »
on yc421206

Claude Code 通過 Spec Workflow 實現規格驅動開發

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

...繼續閱讀 »
on yc421206

發生 OLE DB 提供者 'MSOLEDBSQL' 傳回與資料行應有資料長度不符的資料 錯誤訊息

今天同仁系統發生錯誤訊息,該段語法是透過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。

的錯誤。

...繼續閱讀 »
on rockchang

盤點所有訂閱 Azure OpenAI 模型部署的淘汰日期

  • 82

因為現在模型疊代速度很快,會一直有新模型或是新版本,因此就會開始有管理上的問題,我們會需要確保模型的淘汰時間跟部署狀態,雖然可以從 Azure AI Foundry 看到部署的模型跟淘汰的時間,但是我們建立的 Account 很多的時候就會變的麻煩了,此時我們可以透過 Api 來處理跟匯總這些資料,本文就來實做檢查所有部署的模型資料跟淘汰時間。

...繼續閱讀 »
on anyun

進修課程