手指移動符號

透過 Figma MCP 與 Shadcn MCP 透過與 AI 聊天打造前端介面

UI 通常仰賴設計者與前端耗費大量時間精力進行組織與維護,近期工作上進行前端翻新也遇到大量陳舊代碼需要翻皮的作業,問題是誰有時間一個一個重新替換?嘗試串上 Figma MCP 與 Shadcn MCP Server 讓我們透過與 AI 聊天就能精準打造前端介面。

清單符號

網頁渲染太多東西開始卡頓?讓 List Virtualization 來解決

渲染永遠是網頁運算中極度耗費效能的一塊瓶頸之一,而在像是儀表板應用或是大量資料清單如社群媒體版面很容易會遇到前端渲染效率上的問題,透過「只渲染看得到的東西」來減少效能負擔。這種模式通常稱作 List Virtualization(虛擬化看不到的東西)或 Windowing(只渲染視窗內的東西)。

機器人符號

模型上下文協定(Model Context Protocol)是啥?對現代開發者有什麼影響?

AI 解決一些上下文清晰的小題目如 LeetCode 會發現它通常有驚人的效率與準確率,然而在真實情境下 AI 通常沒有這麼厲害,因為環境上下文和需求是模糊的,如何更好的讓 AI 看清與外部世界互動能夠達成更有效率的產出,而 MCP 是一種大型語言模型的統一協定幫助達成該目標。

刷新符號

如何透過 TanStack Query 建構更好的前端資料獲取體驗

先前文章提到:如何優雅的於 Vue 正確的處理資料載入點出了一些獲取外部資料延伸帶來的問題與實際解方,這次我想透過 TanStack Query 的視角挖掘怎麼建構更好的前端資料獲取體驗。本篇教學繼續延續使用 Vue 框架,不過概念對主流框架基本相通。

資料夾與齒輪符號

如何管理 TypeScript 型別檔案?

TypeScript 型別定義檔案通常就是在全局創個 type.ts 檔案並把所有型別丟裡頭,隨處都能引用很方便,但很多專案初期沿用的習慣到了一定規模就會開始混亂,近期也遇到相關的問題因此研究一下一般有哪些方式管理型別檔案。

旗子符號

什麼是 Feature Flag 以及它解決什麼問題?

還記得之前參與某個專案使用 Git Flow 的方式管理產品發布,但隨著時間過去它與持續進行中的主支線差距越來越大,也是在那次問題之後我更認可 Trunk Based Development 流程的概念,其中提到 Feature Flag 是一種很好的技巧用來降低推送功能的風險與控制程度。

檔案夾符號

Stacked PR 如何提昇代碼審查品質

當只有 10 行代碼改動還可能會細心檢查留言,當有 1000 行改動一切都 LGTM(Looks Good to Me)!要讓人好好集中精神盯著幾千行的代碼改動本身就是很難得的事,身為提交的一方,有沒有可以改善審核效率的方式?或許能試試看 Stacked PR。

瀏覽器符號

Cypress 與 Playwright 如何選擇?

在網頁提到 E2E 測試通常有 Cypress 與 Playwright 兩種選項,而兩種測試工具我都嘗試過。單論整體開發體驗來說我更喜歡 Playwright,不過還有更多可以考慮的要素在選擇合適的測試工具,紀錄我會在意的細節與選擇原因。

打勾框符號

什麼是測試金字塔?它真的有用嗎?

近期在回顧一些測試的概念,其中有個測試金字塔的概念來自於 Mike Cohn 的書 《Succeeding with Agile: Software Development Using Scrum》。還沒有看過這本書,但這個詞彙只要有研究過測試多少都會接觸到,這次來重新了解一下並輸出自己對這個議題的理解。

連結節點圖示

使用 Git Worktree 快速切換複雜的專案情境

近期不管是用 AI Vibe Coding 還是工作上切換不同功能感覺使用 git stash 不是很方便,雖然大致知道有 git worktree 但都還懶得學直接先跳過。這次有空來學如何使用 Git Worktree 快速切換複雜的專案情境。

上升箭頭符號

Vue defineExpose 是啥?子元件如何溝通?

近期要重寫很多的 Vue 發現多得是我需要多補充的知識。你可能了解 Vue 元件間透過 props down 與 event up 或是使用 Scoped Slots 來傳遞資訊。還有一種做法是「顯式地暴露某些變數或函式給父組件使用」。