2026
從 100 行 Regex 到 Lucene Parser:複雜驗證邏輯的重構之路
2026-01-20 2026-01-20
最近在維護一個關鍵字搜尋功能時,遇到了一個經典的工程問題:手寫的 Regex 驗證邏輯越來越難維護,每次修 bug 都像在拆炸彈。
使用 Observer Pattern 重構複雜的資料上傳流程 - 以 PrimaryAPI 與 BackupService 整合為例
2026-01-12 2026-01-14
在後端開發中,我們常遇到需求不斷疊加,導致原本單純的類別(Class)變成了「上帝類別(God Class)」,職責混雜且難以測試。最近我在處理一個將資料上傳到 PrimaryAPI(主要資料平台)與 BackupService(備份服務)的功能時,就遇到了「堆疊式複雜度」的問題。本文將分享如何利用 Observer Pattern(觀察者模式)1 與 Mediator Pattern(中介者模式)2 來優化架構,達成高內聚低耦合的設計。
在 Cloud Run 被 OOM 教訓的一課:用 Stream 把記憶體從 O(N) 降到 O(1)
2026-01-06 2026-01-14
2026 年剛開始,我就收到了一份「大禮」。
2025
TypeScript 5.5+ Inferred Type Predicates:告別手動標註 `item is string`
2025-12-18 2026-01-14
在開發 Vue 組件時,我遇到了一個有趣的類型推斷問題,這讓我深入研究了 TypeScript 5.5 引入的 Inferred Type Predicates 功能。
Nuxt3 中 $fetch 與 axios 在模組頂層的差異
2025-12-08 2026-01-14
最近在重構公司專案的 API 層時,遇到了一個有趣的問題:原本用 axios 可以正常運作的程式碼,改用 Nuxt3 的 $fetch 後卻報錯了。這個問題讓我深入研究了 $fetch 和 axios 在底層實作上的差異。
Import Alias:~ vs @ 在不同框架的慣例
2025-12-05 2026-01-14
最近在重構專案時,發現自己一直習慣用 @ 來做 import alias,但 Nuxt3 的官方文件卻都用 ~。這讓我開始好奇:這兩個符號到底有什麼差異?各個框架的慣例又是什麼?
旅遊規劃網站電腦版居然是 Vue dev mode!?
2025-01-22 2025-01-22
2025 一轉眼也快過了 1/12,趁著過年之前想說來試用看看去年各種 KOL 業配的網站,不過因為我還是習慣使用電腦,所以並沒有下載 APP,而是先使用電腦版試用看看,如果好用再來下載 APP,沒想到偶然發現了他們網站居然還是 development mode。
2024
Nuxt3 Nested Routes 與 active class
2024-12-30 2024-12-31
今天在處理公司專案的時候,遇到一個 Nuxt3 nested routes 小問題,剛好把它記錄下來,就當作這個 blog 2024 年最後一篇文章了 (遮臉)。
參與高股息 ETF 除息前行情
2024-03-11 2024-03-14
台灣人特愛配股配息,這幾年又大量出現高股息 ETF,從年年配,到半年配,季季配,現在連月月配的商品如雨後春筍般,瘋狂冒出。
目前正在募集的 00940 就是屬於月月配,聽說今天第一天募集,就已經達標了,這是何等的瘋狂啊!
macOS 合併 Google Drive 壓縮下載
2024-02-15 2024-12-31
前幾天從朋友分享的 Google Drive 連結,下載一大包檔案,因為檔案很大,超過 2GB,所以 Google 預設幫我分割檔案。因為之前都用 Windows 電腦,所以也沒發現什麼不妥,就很直覺的把檔案下載下來之後準備解壓縮。