iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Modern Web

一個活了六年的 Vue 2 後台,升級到 Vue 3 的那兩年 系列

一個活了六年、還在線上跑的 Vue 2 後台,怎麼升級到 Vue 3。這不是「我怎麼重構」的英雄故事,是我在團隊裡近距離看完整場升級的觀察筆記,用 git 紀錄與實測數字當證據。會寫:升級前怎麼盤點、為什麼選重構而不是重寫、兩個 repo 一份程式碼怎麼共存、Webpack 換 Vite、UI 套件抽換、兩套權限系統並存、TypeScript 的 strict 為什麼設 false、表格與表單這種最痛的區塊怎麼搬、哪些東西決定不搬。也會寫不好看的部分:留下來的醜設計、四成的修改其實是在修自己造成的問題、以及重構為什麼本質上是做減法。想看真實大型專案升級長什麼樣的人,這裡沒有美化過的版本。

鐵人鍊成 | 共 30 篇文章 | 2 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day 21|一個叫「表單項」的 hook,寫完之後零次使用

模組四|核心系統改寫(Day 17–21) 先給三個數字: 舊系統的表單項標籤:2,435 次 新系統的表單項標籤:2,842 次 新系統業務頁面用 sc...

2026-08-26 ‧ 由 harryfan 分享
DAY 22

Day 22|語系從 4 個變成 11 個,維護成本反而下降了

模組五|重構期的品質與節奏(Day 22–26) 我在一個團隊裡,把一套後台管理系統從 Vue 2 升級到 Vue 3:舊系統當時還在線上服務使用者,新系統...

2026-08-27 ‧ 由 harryfan 分享
DAY 23

Day 23|將近一半的改動是在修 bug,而我認為這是好消息

模組五|重構期的品質與節奏(Day 22–26) 我在一個團隊裡,把兩套活了六年的 Vue 2 後台管理系統升級到 Vue 3:一套給內部營運用(下面叫專案...

2026-08-28 ‧ 由 harryfan 分享
DAY 24

Day 24|最好的一次重構,刪掉的是新增的十四倍

模組五|重構期的品質與節奏(Day 22–26) 我把新專案裡「刪除行數遠大於新增行數」的改動排出來(已濾掉自動產生的檔案): 新增 刪除 內容...

2026-08-29 ‧ 由 harryfan 分享
DAY 25

Day 25|有一個欄位名拼錯了,而我們決定不改

模組五|重構期的品質與節奏(Day 22–26) 新系統的請求層有這麼一行: const { code, data, msg, sucess, total...

2026-08-30 ‧ 由 harryfan 分享
DAY 26

Day 26|那四個月我以為是停滯,把四條曲線並排才發現看錯了

模組五|重構期的品質與節奏(Day 22–26) 我在整理開發紀錄的時候,看到一段讓我心裡一沉的曲線。 其中一個新專案,開發量連續四個月掉到近乎停擺,最低的...

2026-08-31 ‧ 由 harryfan 分享
DAY 27

Day 27|Day 3 那三行被註解掉的程式碼,沒有人知道為什麼

模組六|工程文化與收斂(Day 27–30) Day 3 講過一個場景:兩套系統裡有三行程式碼,一邊是活的、一邊被註解掉了。 沒有註解說明原因。git 找得...

2026-09-01 ‧ 由 harryfan 分享
DAY 28

Day 28|「這支 API 沒人用」——你敢刪嗎?

模組六|工程文化與收斂(Day 27–30) 遷移完成之後,API 層累積了一批「可能沒人用」的函式。 大家都知道它們在那裡。也大概知道哪幾支應該可以刪。但...

2026-09-02 ‧ 由 harryfan 分享
DAY 29

Day 29|我們刻意先寫了兩份,隔了幾個月才合併

模組六|工程文化與收斂(Day 27–30) 兩套系統要做同一個功能。你會怎麼做? 工程師的本能是:寫一份,兩邊共用。 我們沒有。我們刻意先寫了兩份,等了幾...

2026-09-03 ‧ 由 harryfan 分享
DAY 30

Day 30|兩年之後,那個「一個測試檔」還是一個測試檔

模組六|工程文化與收斂(Day 27–30) Day 1 我用三個數字開場。今天回去看它們兩年之後變成什麼。 其中兩個進步了。第三個幾乎沒有動,而它是我當初...

2026-09-04 ‧ 由 harryfan 分享