![]()
技術主管從大會回來,眼里閃著那種光——你懂的,就是那種"剛聽完45分鐘革命性技術演講,現在我要重寫一切"的光。2024年的晨會上,他宣布:我們要遷TypeScript。
沒人反對。這年頭不用TS,就像承認你還在生產環境寫jQuery。我們有4.7萬行JavaScript,跑得穩,客戶滿意,營收在漲。但"不夠類型安全",突然成了必須解決的痛點。
第一個PR漂亮得像樣板間。團隊花了三周把核心模塊搬過去,類型定義寫得比注釋還認真。QA測完沒發現新問題,主管在群里發了慶祝表情。
上線第二天,生產環境炸了。一個邊界情況——用戶同時觸發兩個模態框時——TS編譯器完全沒攔住的空指針。團隊排查三小時,最后發現是類型斷言里那個該死的as any。
「TypeScript能防止的bug,前提是你要寫對類型。」一位開發者在復盤文檔里寫下這句,后面跟了十七個踩。
三個月后統計,遷移期間引入的bug比修復的還多兩個。類型檢查確實抓了十幾個拼寫錯誤,但生產事故的根因,和之前用JS時一模一樣:邊界情況沒覆蓋,異步邏輯沒理清,還有那個永遠存在的"我以為這里不會為空"。
最近晨會上有人問,要不要把剩下的模塊也遷了。主管低頭看咖啡,說再等等。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.