#游標分頁、環境變數與 API 統一大作戰:今天又是一場跟自己的硬仗

有些東西放著不管就像是技術債務的定時炸彈,哪天一換環境就直接炸開來給你看。於是狠下心來,一口氣把 API URL 的處理邏輯全部抽取出來,改用環境變數統一管理,順便還給它做了個 trim 處理,避免環境變數前後多了空白符號導致的莫名其妙錯誤(我真的受夠這種鳥問題了 😑)。

有些東西放著不管就像是技術債務的定時炸彈,哪天一換環境就直接炸開來給你看。於是狠下心來,一口氣把 API URL 的處理邏輯全部抽取出來,改用環境變數統一管理,順便還給它做了個 trim 處理,避免環境變數前後多了空白符號導致的莫名其妙錯誤(我真的受夠這種鳥問題了 😑)。

順手也把所有 console log 清了一遍,然後又發現之前寫 ingredient fetching 的時候,endpoint 格式居然有點不一致,導致有些成分 ID 查詢不到資料。這種錯誤真的是讓人又氣又好笑,當初寫的時候怎麼沒注意到?只能苦笑著重構了一波,把 API URL 結構調整好,確認每個 ID 都能正確存取,順便也加上了 error handling,至少下次再出問題時可以更快知道原因,而不是瞪著螢幕一臉問號地 debug。

解決 API URL 的問題之後,回頭看了一下最近加的游標分頁功能,總覺得好像還缺點什麼。之前的版本只做了單向的 next 分頁,結果我自己在測試的時候就發現,使用者如果點上一頁,整個邏輯就會亂掉。

好啦 Danny,你當初設計的時候為啥沒想到這個場景?😅 於是今天又重新設計了一下游標分頁的查詢邏輯,新增了 direction 參數,讓前後分頁都能走得順暢,並且在 IngredientsPage 跟 Pagination component 裡實現了完整的雙向游標分頁。這樣一來,使用者體驗明顯好很多,但老實說,這個游標分頁的 SQL 查詢邏輯真的有點繞,每次寫完都要停下來再看一次:「Danny,你確定這樣寫沒問題嗎?你真的懂自己在寫什麼嗎?」🤔

下午切換到前端,重新整理 IngredientsPage 跟 IngredientSchema 的 UI 結構。之前的成分成分顯示方式太過簡單,資料一多就變得很難讀。這次改成動態載入並且加上了 loading state,還做了個 detail modal 給使用者點擊查看詳細資訊。為了讓查詢更直覺,我還特別在後端模型裡加上了成分別名跟翻譯欄位,這樣一來使用者搜尋不同語言或別名時,也能順利找到對應的成分。雖然只是幾個欄位,但這種小小的 UX 改善,總是讓我覺得特別值得投入時間。

另外,今天也順手把專案裡的 TypeScript 相關設定更新了一遍,package.json 跟 tsconfig.json 都調整到最新穩定版本,順便清掉了一堆過時的文件跟沒人在看的開發指南(這種東西真的有人在看嗎?)。每次清理這些陳年舊檔案的時候,總會想起當初寫下它們的初心,但也不得不承認,很多東西在快速迭代的過程中其實已經失去意義了。Danny,你下次寫文件的時候,能不能稍微想清楚一點再開始啊?😅

今天整體來說還算順利,但內心還是有些猶豫,比如游標分頁的複雜性真的值得嗎?會不會後續維護成本太高?環境變數這樣統一處理之後,會不會又漏掉了其他地方?每個決定的背後總是帶著一點點自我懷疑,但也許創業跟開發本來就是這樣吧,邊做邊學,邊犯錯邊成長,只要今天的程式碼比昨天更清晰、更穩定,就算是小小的成功了吧。

Subscribe to 海博賽特日誌

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
[email protected]
Subscribe