<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Terry Cheng</title><description>Backend engineer in Taipei. Go &amp; Postgres by day; writing at night.</description><link>https://terrychengtw.com/</link><language>zh-Hant</language><item><title>為什麼我開始寫一個技術部落格</title><link>https://terrychengtw.com/posts/why-i-started-writing/</link><guid isPermaLink="true">https://terrychengtw.com/posts/why-i-started-writing/</guid><description>去年我花兩週解掉的 deadlock，我完全忘了。翻回當時的筆記，看到的自己像個陌生人。這篇是我給未來自己的備忘。</description><pubDate>Thu, 02 Apr 2026 00:00:00 GMT</pubDate><category>meta</category><category>essay</category></item><item><title>Go 並發的三種姿勢：goroutine、channel 與 context</title><link>https://terrychengtw.com/posts/go-concurrency-shapes/</link><guid isPermaLink="true">https://terrychengtw.com/posts/go-concurrency-shapes/</guid><description>大部分 Go 並發的 bug 都是「用錯姿勢」，不是工具本身有問題。這篇整理我看過的三種最常見模式。</description><pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate><category>go</category><category>deep</category></item><item><title>讀 DDIA 第七章 — 關於交易</title><link>https://terrychengtw.com/posts/ddia-ch7-transactions/</link><guid isPermaLink="true">https://terrychengtw.com/posts/ddia-ch7-transactions/</guid><description>邊讀邊寫的筆記，不是完整文章。主要記我原本以為懂、讀完才發現不懂的那些。</description><pubDate>Wed, 11 Feb 2026 00:00:00 GMT</pubDate><category>reading</category><category>note</category></item><item><title>我的 Neovim 設定，2026 版</title><link>https://terrychengtw.com/posts/neovim-2026/</link><guid isPermaLink="true">https://terrychengtw.com/posts/neovim-2026/</guid><description>每兩年重寫一次 config。這次砍掉 40% 的 plugin，反而比較順手。</description><pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate><category>tools</category><category>essay</category></item><item><title>Postgres 的 lock 為什麼總是違反我的直覺</title><link>https://terrychengtw.com/posts/postgres-locking-surprises/</link><guid isPermaLink="true">https://terrychengtw.com/posts/postgres-locking-surprises/</guid><description>SELECT FOR UPDATE 的鎖範圍不是你想的那樣。一篇關於 row-level lock、advisory lock、與我踩過的三個坑。</description><pubDate>Sun, 14 Dec 2025 00:00:00 GMT</pubDate><category>postgres</category><category>deep</category></item><item><title>工程師的寫作曲線：從 README 到 blog</title><link>https://terrychengtw.com/posts/engineer-writing-curve/</link><guid isPermaLink="true">https://terrychengtw.com/posts/engineer-writing-curve/</guid><description>把寫作當肌肉練。從 commit message 到 postmortem 到文章，中間的卡點在哪。</description><pubDate>Sun, 02 Nov 2025 00:00:00 GMT</pubDate><category>meta</category><category>essay</category></item><item><title>關於 timeout 的小筆記</title><link>https://terrychengtw.com/posts/note-on-timeouts/</link><guid isPermaLink="true">https://terrychengtw.com/posts/note-on-timeouts/</guid><description>最近才想清楚：client timeout、server timeout、context timeout 三者該怎麼配合。</description><pubDate>Sat, 18 Oct 2025 00:00:00 GMT</pubDate><category>systems</category><category>note</category></item><item><title>一支 query 吃掉我整個週末的故事</title><link>https://terrychengtw.com/posts/slow-query-weekend/</link><guid isPermaLink="true">https://terrychengtw.com/posts/slow-query-weekend/</guid><description>explain analyze 從 300 行讀到 0 行，中間換了三次假設。這是慢 query 修復的完整過程。</description><pubDate>Fri, 05 Sep 2025 00:00:00 GMT</pubDate><category>postgres</category><category>deep</category></item><item><title>為什麼我不再用 ORM 寫新功能</title><link>https://terrychengtw.com/posts/stopping-reaching-for-orm/</link><guid isPermaLink="true">https://terrychengtw.com/posts/stopping-reaching-for-orm/</guid><description>不是 ORM 不好，是 default 選擇太便宜，常常遮掉了資料庫真正在做的事。</description><pubDate>Sun, 10 Aug 2025 00:00:00 GMT</pubDate><category>go</category><category>essay</category></item><item><title>把自己的 server 從 DigitalOcean 搬到 Hetzner</title><link>https://terrychengtw.com/posts/moving-to-hetzner/</link><guid isPermaLink="true">https://terrychengtw.com/posts/moving-to-hetzner/</guid><description>一個下午的遷移紀錄，包含一個我忘記備份 DNS 的尷尬時刻。</description><pubDate>Tue, 22 Jul 2025 00:00:00 GMT</pubDate><category>ops</category><category>log</category></item></channel></rss>