絞殺榕式搬家:系統換底不重寫
在原系統內逐類資料換底、逐段驗證、保留舊路徑的漸進遷移策略;比重寫風險低,過程中系統一直可用。
「絞殺榕」是一種真實存在的樹:它的種子落在別棵樹上發芽,氣根順著宿主樹往下長、慢慢把宿主整個包住,最後宿主枯掉,榕樹自己站著——外形還是一棵樹,但裡面已經完全換成新的了。
軟體界借這個意象命名了一種系統改造策略(strangler fig pattern,出自 Martin Fowler),核心想法是:要把舊系統換掉時,不要砍掉重練,而是讓新系統一小塊一小塊地「包住」舊系統,每包一塊就驗證一塊,直到舊的自然沒人用了。
適用情境
要把系統的資料層整個從舊平台搬到新平台(例如為了省授權費+統一架構)。直覺做法是「重寫一套新的」,但重寫的風險是:新舊功能對不齊+長時間不能上線。
實際成果
五天搬完,六百多筆資料逐筆核對筆數吻合,過程中系統一直可用,同事無感。
三個前提條件
- 搬家前先有測試安全網——當時有一百多條自動測試,每換一段就能立刻知道有沒有弄壞東西。
- 舊路徑保留到新路徑穩定才清——隨時可以切回去,就不怕搬到一半出事。
- 每階段有可驗證的完成標準——筆數對、功能過,不是「感覺搬完了」。
決策心得
「重寫」聽起來乾脆,但漸進搬雖然瑣碎,風險小很多。跟 AI 討論遷移方案時,可以直接問「能不能用絞殺榕的方式分段搬」。