文章
技術筆記
關於後端、可觀測性與系統設計的實作筆記,寫給遇到同樣問題的自己與其他工程師。
2026年10月7日
Kubernetes HPA 為什麼看 Request 而不是 Limit?從擴展公式反推 CPU Request/Limit 怎麼設
2026年9月21日
DevOps CALMS 實踐框架:不是先買工具,而是先看哪個字母在拖後腿
2026年9月20日
SRE 的 SLI、SLO、SLA 與錯誤預算:先分清楚「量什麼」「承諾什麼」「賠什麼」
2026年6月11日
藍綠部署、金絲雀部署、Feature Toggle:三種降低上線風險的部署機制
2026年3月2日
Prometheus 指標類型怎麼選?從業務情境反推該用 Counter、Gauge 還是 Histogram
2026年2月16日
阿里巴巴中台架構筆記:前台、中台、後台,與「大中台,小前台」
2025年11月23日
Kubernetes 探針怎麼設計?Liveness、Readiness、Startup 的責任劃分
2025年9月16日
Kafka 與 RabbitMQ 差在哪?從「佇列」和「日誌」兩種模型看怎麼選
2025年7月15日
Kafka 實務注意事項:廣播怎麼做、順序怎麼保、group.id 怎麼取,以及 K8s 自動擴展為什麼沒有變快
2025年5月13日
Kafka 完整入門:Broker、Topic、Partition、Replica、Consumer Group 一次搞懂
2025年2月17日
GitOps 與 Argo CD:為什麼部署要從「推」改成「拉」
2025年1月14日
敏捷需要的是思維,不是手法:從 Linda Rising 的〈The Power of an Agile Mindset〉談固定型與成長型思維
2024年12月17日
在 Scrum 中加入 Event Storming:Big Picture 建立 Product Backlog,Process Modeling 拆出 User Story
2024年11月26日
用 Redis 做分散式鎖:SET NX PX、Token 驗證、續期,以及它保證不了的事
2024年10月24日
Scrum 流程整理:三個角色、三個產出物、五個事件,從 Backlog Refinement 到 Retrospective
2024年9月24日
Event Storming 怎麼跑?從準備、Big Picture 的七個步驟,到 Process Modeling 的便利貼語法
2024年8月19日
幫 ASP.NET Core 接上 OpenTelemetry:從零到 Grafana/Tempo/Loki
2024年7月9日
Redis 快取怎麼用才不會出事?Cache-Aside、資料一致性,與穿透、擊穿、雪崩三個問題
2024年6月18日
從 Docker 換到 containerd + nerdctl:架構差異、安裝 runc 與 CNI,以及移除 Docker 後的網路問題
2024年5月21日
Terraform 團隊協作的兩個基本功:S3 + DynamoDB 遠端 State,以及可重複使用的模組設計
2024年4月30日
怎麼劃分 Domain?找出子域、分辨核心/支撐/通用,再對應到限界上下文
2024年4月9日
Kubernetes 滾動更新怎麼做到真的不停機?maxSurge、Readiness、preStop 與 PodDisruptionBudget
2024年3月19日
領域故事化(Domain Storytelling):讓業務用說故事的方式講需求,再從故事裡找出上下文邊界
2024年2月27日
用反射自動註冊泛型 Handler:找出所有 IEventHandler<T>,再在執行時依事件型別派送
2024年1月16日
DDD 概論:戰略設計、戰術設計與 Event Storming,先搞懂它到底在解決什麼問題
2023年12月19日
六角形架構(Ports & Adapters)在 .NET 的實作:讓圖片從本機換到 S3 不用改一行業務程式
2023年12月5日
單元測試怎麼寫才好讀?用 3A 模式組織測試,用「方法_情境_預期結果」命名
2023年11月14日
CQRS 實戰:把讀取交給 Elasticsearch,寫入留給關聯式資料庫
2023年10月24日
OpenID Connect 登入流程拆解:Authorization Code + PKCE、id_token 與 access_token 的差別
2023年9月12日
從 MSSQL 增量同步到 Elasticsearch:用異動欄位與 Checkpoint 只同步「變動的資料」
2023年7月18日
用 SignalR 串流做出 ChatGPT 的「逐字出現」:IAsyncEnumerable、取消與多實例部署
2023年5月30日
用 Elasticsearch 做地圖找房:geo_point、geo_bounding_box 與 geo_distance
2023年2月21日
Redis 不只是快取:五種資料結構、各自的使用情境與上線前要知道的事
2022年11月8日
RabbitMQ 訊息怎麼才不會掉?Ack、Prefetch、延遲重試與死信佇列
2022年8月23日
點數系統為什麼不能直接改餘額?用交易紀錄、冪等鍵與條件更新設計一個對得起帳的點數帳本
2022年6月14日
RabbitMQ 的 Exchange、Queue、Binding:訊息到底是怎麼被送到佇列的?
2022年3月18日
Elasticsearch 入門:從 RDBMS 概念對照到 Query DSL 與 Aggregation 實戰
2022年1月11日
Kubernetes 入門:Pod、Deployment、Service、Ingress 是怎麼把一個請求送到容器的
2018年12月4日