編輯 | 文昭
如果有一天,你的 CTO 告訴全員:“我們要用 Rust 重寫所有后端服務。”
你會:
A. 激動鼓掌:「終于擺脫 Python 了!」
B. 表情復雜:「Rust 是好,但你考慮過大家的學習成本嗎?」
C. 更新簡歷:「這個鍋我可不背。」
今天這篇真實案例,是一個 CTO 對 Rust 的極致信仰實驗。他重寫了一切,然后……“順帶”重啟了團隊。
1.故事怎么開始的?
一切出發點,其實都很合理,甚至可以說是一個善良的初衷。
經年累月,我們團隊的后端系統已經很陳舊了。系統性能拉胯、代碼庫日益混亂,陳年老代碼主要寫在 Node.js、和 Python、Go 上。
久而久之,開發團隊也被陳舊技術債務壓得喘不過氣,甚至“怨聲載道”了起來。
這時 CTO(我們叫他 Arun)提出了一個愿景:用 Rust 重寫一切。
這不是他一拍腦門做的決定。Arun 一直在研究 Rust —— 它的內存安全、飛快的性能,以及對系統編程級別的控制力。我們已經被垃圾回收暫停和運行時異常折磨得夠久了。
“用 Rust 重寫。我們不只是讓后端更快,它還能逼著團隊養成紀律,重塑我們的技術文化。”
在他的理想國里,Rust 是“那顆銀彈”:
- 沒有垃圾回收帶來的延遲問題
- 所有權模型天然避免內存泄漏
- 編譯期就能搞定線程安全
這聽起來確實太美妙。誰能拒絕一個又快又安全的后端呢?
Rust等效示例
2.第一階段:試點驚艷四座
我們從貨幣轉換服務開始試水,CTO 親自帶隊和一名初級工程師一起上。
結果非常 nice:
- 延遲下降 60%
- CPU 使用減半
- 內存占用顯著降低
CTO 興奮地宣布:“全員轉 Rust!”
于是乎,每位工程師都被分配了同一個任務:學 Rust,重寫你的服務。
3.第二階段:團隊開始失控
好景不長,問題很快暴露了:
- Rust 優點不少,但學習曲線太陡,有人數周都沒搞懂借用檢查器
- 老服務沒人維護,新功能開發停滯(許多工程師已經花費數年時間使用 Python 和 Go,他們效率高,功能發布速度快。)
- PR 堆積如山,一直無人審查
- 進度一拖再拖
- 團隊內部士氣嚴重下滑
關鍵問題不是 Rust 技術本身,而是 CTO 推行方式完全不顧團隊共識,一夜之間改變技術方向,沒有培訓、沒有節奏。
4.最震撼的一步:解散全隊
三個月后,遷移只完成一半,Bug 越來越多,工程師們士氣低落,功能開發速度幾乎降為零。
然后,CTO 做了個震驚全公司的決定:解雇了整個后端團隊。
我需要一個相信 Rust-first 愿景的團隊。
然后重新招了一支新隊伍——這些人主要由來自系統編程社區的 Rust 工程師組成。這些人才華橫溢,雖然 Rust 水平強悍,但對產品和業務完全陌生——要從零熟悉一切。
5.成果與代價并存
半年后,Rust 終于全面上線,性能提升毫無疑問。
但代價也很真實:
- 6 個月沒有新功能上線
- 一個重要客戶因為等待關鍵集成而流失
- 銷售線索減少,渠道萎縮了
- 產品與市場的契合度問題再次暴露
- 曾經的領域專家離開了,領域知識徹底喪失
CTO 后來承認:
“如果能重來,我寧愿花時間培養原團隊,而不是炒掉他們重招。”
Rust 并沒有“毀掉”一切。
真正的錯誤在于:技術優先,文化靠邊。
6.重寫前后的架構對比
舊版(Python + Node.js):
[ API Gateway ]
|
[ Auth Service ] <-- Python
|
[ Order Service ] <-- Node.js
|
[ Currency Service ] <-- Python
新版(Rust 全家桶):
[ API Gateway ]
|
[ Auth Service ] ← Rust (actix-web)
|
[ Order Service ] ← Rust (axum)
|
[ Currency Service ] ← Rust (tokio + reqwest)
工具鏈變化如下:
- 異步執行:Tokio
- JSON 處理:Serde
- 部署:Docker + Kubernetes(沒有改變)
7.CTO 的血淚教訓
這就是我們整個遷移重寫的血淚教訓:
- 不要重構那些不需要重構的東西。慢慢來,逐步演進。
- 重寫不是技術問題,是文化問題。你無法強迫全員換腦子,不給時間與支持。
- Rust 很棒,但也很硬。適合愿意花時間學習的團隊,不適合“強推式管理”。
- 團隊聲音很關鍵。最好的工程師,不只是寫代碼的人,更是組織記憶的守護者。
8.寫在最后:別用技術抹殺團隊
Rust 的確提升了性能,但錯誤的推行方式,扼殺了我們團隊。
歸根結底,問題不在語言,而在你怎么建構團隊與系統。
技術可以刷新性能,但只有人心,才能維持系統的生命力。
最后,各位看官覺得這篇案例是否似曾相識?是否值得轉給你的 CTO 或開發團隊——歡迎留言分享你的 Rust 或重構故事。