打造開發者友善的錯誤處理方式(feat. Java, Go, Rust, TS)
錯誤處理是所有程式都會遇到的問題,特別是在複雜的網頁開發中更是如此。本文將研究不同方法模式與語言探討如何「打造開發者友善的錯誤處理方式」。推薦演講:Unexpected Monad. Is Safe Error Handling Possible in JS/TS?
錯誤處理是所有程式都會遇到的問題,特別是在複雜的網頁開發中更是如此。本文將研究不同方法模式與語言探討如何「打造開發者友善的錯誤處理方式」。推薦演講:Unexpected Monad. Is Safe Error Handling Possible in JS/TS?
近期在遷移舊的 Element Plus 專案是必要找到另一款客戶端表單驗證方案,而在使用 Shadcn Vue 過程中發現 VeeValidate 是一款針對 Vue 製作的無頭表單驗證工具,你可以攜帶自己的 UI 整合,使用原生表單元件也不是問題。
前端生涯中遇到無數攸關資料呈現的需求需要解決,而 TanStack Table 是一款第一眼看起來很多餘複雜但實際上能省下無數時間的一個優質套件,如果有任何「大量表單、中大型表單應用」我會強烈推薦。在實際工作中我透過導入 TanStack Table 在幾天時間內就能把現有表單大多複雜功能重現。
AI 解決一些上下文清晰的小題目如 LeetCode 會發現它通常有驚人的效率與準確率,然而在真實情境下 AI 通常沒有這麼厲害,因為環境上下文和需求是模糊的,如何更好的讓 AI 看清與外部世界互動能夠達成更有效率的產出,而 MCP 是一種大型語言模型的統一協定幫助達成該目標。
還記得之前參與某個專案使用 Git Flow 的方式管理產品發布,但隨著時間過去它與持續進行中的主支線差距越來越大,也是在那次問題之後我更認可 Trunk Based Development 流程的概念,其中提到 Feature Flag 是一種很好的技巧用來降低推送功能的風險與控制程度。
從很早以前就大致知道瀏覽器開始推出 Web Components 相關 API 與標準,但一直沒有機會在實戰中使用這項技術。想撰寫這篇文章記錄是因為隨著時間推移發現 Web Components 的應用範疇越來越廣,因此趁著有空也來了解一下相關知識,並且分析它與現有的解決方案有什麼不同。
近期將公司的新 Nx Monorepo 架構專案透過 GitHub Action 添加了自動更新套件的功能,會想實踐該功能是因為舊專案疏於更新導致吃了非常多的苦頭,希望在新架構下可以有更輕鬆且自動化的方式去執行更新。其中 Nx 有專屬的 nx migrate 指令幫助我們達成這件事,並且背後有些非常有趣的機制與理念。
不到 3 步驟讓你的網站擁有以 WebAssembly 高效驅動的客製化搜尋功能。靜態網站像是部落格、文件、個人網站、公司網站……等這類閱讀體驗為主的網站通常都有搜尋內容的需求,恰逢 Pagefind 1.0 的推出我把原先自製的 fuse.js 搜尋功能換成 Pagefind,分享如何在任何靜態網站上加入搜尋功能。
TDD 測試驅動開發是一種開發方法論,先寫測試再實踐代碼,應該如何撰寫測試?或許聽過 TDD 但不清楚與單純寫測試差別在哪?這篇文章詳細描述 TDD 的優勢與實際操作範例快速了解 TDD 為什麼這麼讚。TDD 目的便是打造一個工作流程能夠驗證程式碼的行為,讓開發者能夠更有信心的重構、更動程式碼。
隨著前端的複雜程度增加,Monorepo 這個詞彙也時常出現在眼前,可惜的是相關介紹資源非常不足,趁著近期較為閒暇的時間來統整紀錄一下我對 Monorepo 的理解。受到不同好文章與影片的的啟發,我想寫一篇最直白的 Monorepo 解釋,希望能夠幫助更多人理解 Monorepo 的概念。
本文描述近期在維護既有代碼時的故事,目前的專案中有各式各樣前人尚未統一的驗證方式,例如:有些是使用 HTML 原生客戶端驗證、伺服器端驗證、第三方套件、自造的驗證方法,如何統一規範驗證方式是一大問題,同時也要思考:「要如何避免創造更多的陳舊代碼?」
NPM 是 JavaScript 開發環境中一定會使用到的一款套件管理器,本篇文章將比喻導演一部電影來解釋 NPM 如何運作。寫程式就像在拍攝一部電影,可以親自上陣設計並打理演員,也可以聘請別人設計好的,NPM 就像一個平台可以在上面找到很多現成的演員,這些演員就是套件(Package)。
我相信撰寫程式並沒有絕對的準則,但絕對有些常見可以權衡留意的地方。這篇文章記錄著作為助教在檢閱不同人寫的代碼的時候,留意到的一些潛在的問題……本篇文章主要是經驗的濃縮,如果要詳細的撰寫建議可以參考看看無瑕的程式碼,會有更全面的說明與案例。