前年我在一間直播代購電商新創擔任 Backend Lead:客人在直播留言「2601+1」就是下單——起標瞬間每秒 200 則留言、13,000 人在線,而全部家當是一台 VM、一顆 Cloud SQL 和六個工程師。這 30 天不是回憶錄,是帶著現在功力的完整重打:每天從一個真實需求出發——留言怎麼變成訂單、庫存怎麼守住不超賣、金流三個坑怎麼被架構整組溶解、沒有 SRE 的年代怎麼靠人肉跟播——先誠實講當年怎麼做、踩了什麼,再給出重來版設計。從第一行程式、開賣尖峰、真實事故,一路寫到拆成微服務與終局:一個真實系統的軟體開發實錄。改寫自我的部落格同名系列。
先說這 30 天是什麼:不是教學,是一個真實商業系統的軟體開發實錄——設計、取捨、事故,和「如果重來」。 這是一個新系列,也是這個部落格第一個戰爭故事。我在前公...
全景鋪完,講留言、庫存那些戰役之前,先把當年的武器庫攤開——因為後面每一章的取捨,都是在這套技術棧的邊界裡做的。團隊很小:3 個後端、3 個前端,偶爾發包給外包...
全景和起手式鋪完,進主線第一戰:一則留言,怎麼變成一筆單。這章講「接進來」和「解析」兩段,佔庫存的攻防留給下一章。主角是把聊天室變成收銀機的那台有限狀態機——我...
昨天講了留言怎麼接進來;今天拆管線的心臟——把「2601藍+1紅+2」變成訂單的那台手寫 FSM,我們直接讀程式碼。 解析:一個為拇指設計的迷你語言 客人在直播...
上一章的 FSM 解出了「誰買了什麼」——但那個「誰」,其實只是 FB 給的一串數字。他可能從來沒註冊過我們的平台,可能明天才會登入,可能永遠不會。而庫存現在就...
昨天講了「身分是事實、帳號是聚合」——但把身分綁到帳號這一步,有一堵 FB 親手砌的牆。 FB 不讓你知道他是誰:ASID 與 PSID 真正的大魔王在綁定這一...
留言解析完、身分掛好單,主線走到心臟:庫存。這個系統的功能清單可以慢慢長,但只有一條規則從第一天就是鐵律——不能超賣。賣掉不存在的貨,是要一個一個跟客人道歉退款...
昨天說這個系統真的超賣過一次。所有人的直覺都會猜是鎖沒上好——不是。公式從頭到尾沒破,破的是公式裡一個詞的定義。 那次真的超賣:兇手不是併發,是一次 migra...
交易主線的最後一站:單怎麼從購物車走到訂單。留言進了購物車、身分掛好了單、庫存卡住了不變量——這章把它們聚合成一筆可以付錢、可以出貨、可以開發票的東西。明天的標...
昨天預告了:這個系統裡有一台真的被拔掉的狀態機。今天講訂單的「狀態」為什麼是五個欄位、零個狀態機。 訂單的「狀態」:五個欄位,零個狀態機 教科書會教你給訂單畫一...