系統重啟之後,所有快取全空,大量請求同時打到 DB,DB 直接噴掉了啦!!! 這就是快取雪崩(Cache Avalanche)的經典場景。 本文用 .NET 10 的 HybridCache 示範三種防護策略:TTL Jitter、分層 TTL、Circuit Breaker,並搭配整合測試驗證行為。

系統重啟之後,所有快取全空,大量請求同時打到 DB,DB 直接噴掉了啦!!! 這就是快取雪崩(Cache Avalanche)的經典場景。 本文用 .NET 10 的 HybridCache 示範三種防護策略:TTL Jitter、分層 TTL、Circuit Breaker,並搭配整合測試驗證行為。

SPA 做身分驗證,一定要面對一個問題:**Token 要存在哪?** Authorization Code Flow + PKCE(RFC 7636)是目前的標準做法,解決的是「授權碼在傳輸途中被攔截後,攻擊者拿去換 Token」的問題。搭配 CSP(Content Security Policy)從瀏覽器端限制腳本來源,這兩道防線合在一起,才算是比較完整的 SPA 安全架構。 這篇文章用 ASP.NET Core Web API 自己實作授權伺服器,從頭走完整個 PKCE 流程,包含帳密驗證、Session Cookie 持久化,以及受保護的 API 端點。

最近在玩 NousResearch 推出的 Hermes Agent,覺得 CLI 用起來還是不夠舒服,想把對話介面換成 OpenWebUI,又想在手機上也能用,所以順便串了 ngrok 把服務開到外網。
這一篇把安裝、Gateway 設定、OpenWebUI 串接、Hermes 舊對話匯入、ngrok 對外曝光一次整理起來,以後重灌也可以照著做一遍。

你是否曾讀過一篇文章覺得很重要,但兩週後卻想不起來在哪看過?或者辛苦存了書籤、截圖,一個月後打開卻不知從何看起?更常見的問題是,文章 A 和文章 B 提到了同一個概念,但因為存在不同地方,你根本沒發現它們的關聯。
最近 OpenAI 共同創辦人、前 Tesla AI 總監 Andrej Karpathy 在 X 上分享了解決這個問題的方法,在網路上引起廣大回響。他的作法很簡單:把文章丟給 AI,AI 讀完後自動整理成一個 Wiki 知識庫,包含總結、目錄以及相關概念的連結,全部以 Markdown 檔案的形式存在你的電腦裡。
這篇文章我想要演練「用 Claude Code 建立這套個人知識管理系統」,從環境建置到實際 ingest 文章,一步一步帶大家走過去。

在軟體工程的開發與日常知識管理中,工具的選擇與工作流的順暢度往往決定了生產力的高低。傳統雲端筆記在切換頁面時常有卡頓感,容易打斷工作心流,且資料受限於第三方伺服器。
Obsidian 憑藉著本地端獨立 Markdown (MD) 檔案的特性,不依賴雲端伺服器,不僅確保了資料安全,其純文字的架構更是與 AI 程式開發工具(如 Claude Code 或 Gemini CLI)完美結合的絕佳載體。本篇文章將紀錄如何建置 Obsidian 基礎環境,透過 GitHub 進行全自動雲端同步,並導入 AI 工具實踐「自動整理」的筆記工作流。

在使用 AI 輔助開發(如 Claude Code、Copilot、Codex)接手或分析大型專案時,若讓 AI 直接讀取大量檔案,不僅會耗費大量 Token,AI 也容易迷失在細節中。Graphify 橫空出世,落實了 Karpathy 的工作流程,它是一款強大的擴充工具,能將專案內的程式碼、文件、圖片甚至影音,轉換為「可查詢的知識圖譜(Knowledge Graph)」。它能引導 AI 優先閱讀摘要報告,快速掌握系統架構與設計理念,這是我一直想要的阿。

ASP.NET Framework 的 Session 預設使用排他鎖(Mutex),同一個使用者的 Request 會排隊等待,嚴重影響效能。而 ASP.NET Core 的 Session 雖然不會排隊,但底層是 IDistributedCache,不支援 HybridCache,每次存取都直接打 Redis,沒有 L1 記憶體快取,高流量時有快取擊穿的風險。
這篇想要演練的是用 HybridCache + Cookie 實作一個 SessionCacheProvider,讓開發者用起來跟原本的 Session["key"] 幾乎一樣,同時支援 ASP.NET Framework 4.8 和 ASP.NET Core (.NET 10)。

上一篇 用 IDistributedCache + MemoryCache 做了一個簡單版本的冪等,適合單節點演練。但在多 Pod / Container 部署的環境下,MemoryCache 各自獨立,不同 Pod 看不到彼此的快取,冪等保護會直接失效。
這篇換用 Redis 來實現分散式冪等,目標是能跑在 Kubernetes / Docker Swarm 這類環境。

在微服務架構中,一個使用者請求可能跨越多個服務,當問題發生時,如何追蹤這個請求到底經過了哪些服務?每個服務做了什麼事?花了多少時間?這就是「可觀測性(Observability)」要解決的問題。
本篇文章將介紹如何在 ASP.NET Core 10 微服務中整合 OpenTelemetry、Serilog、Jaeger 與 Aspire Dashboard,建立完整的分散式追蹤與結構化日誌方案。

在雲端原生 (Cloud Native) 的世界裡,無伺服器 (Serverless) 架構已經不是什麼新鮮事。今天,我們就來聊聊微軟 Azure 上的無伺服器解決方案 — Azure Function App,並實際走一遍如何用 C# 開發,最後再透過 GitHub Actions 帥氣地自動部署上去。
