重構永遠不是「只是改一下」的事

今天原本只打算把產品頁改成 client-side component,改善 SSR 時卡卡的效能與 UX。結果一動到 loading 與 error 處理,才發現 API 壓根沒把這些場景算進去,只好整包重整。有人會問:「真的有必要碰 API?用戶會在意嗎?」我很清楚,這種邊角不處理乾淨,之後一定回來咬人。

另外,之前為了避快取加的 timestamp 參數也被我拆了。看似能解快取問題,實際上讓圖片 URL 每次都不同,反而破壞瀏覽器快取。最後改成在上傳或刪除頭像時主動重置預覽 URL,用戶看到更新更即時、更順。順手把顏色生成函式也修了一下,避免測到那種詭異的橘綠色組合。

下午做產品評分與評論時,又卡在「要不要開放訪客留言」。直覺是開放,互動會增加;但想到 spam 防治與認證成本,最後先保守,暫時只給登入會員評論,之後再看情況調整。這種決定難免自我懷疑,但先把基礎守住比較務實。

在 profile 頁面加了 secondaryTypographyProps,本來只是微調字體,結果一路改到 AuthProvider 的 useMemo。原因很單純:contextValue 每次 render 都重建,不理想,就包一下做小幅優化。

今天也補了一個一直在意的小體驗:裁剪頭像時增加「原始圖片預覽」。以前裁完就回不去,現在可以一鍵回到初始,裁剪、縮放、旋轉狀態全部重置。測試時自己玩到忘記是在 debug。

最後,乾脆清了一批過時文件與 API 文檔。每份文件都是花時間寫的,砍起來難免掙扎,但放著不更新只會增加維護負擔。刪完之後架構清爽不少,心情也跟著輕鬆。

總結一下:今天看似在細節裡打轉,但這些重構與取捨,都是為了下一次回看程式碼時,不會想吐槽自己「當初在想什麼」。