關於我
我是 Sean,網路上常用「大貓」這個名字。從前端出發的全端工程師,主要寫 React 與 Next.js,關注效能與 SEO;後端用 Node.js(Express、NestJS)搭配 PostgreSQL,並持續往 AWS 雲端部署延伸。日常開發大量使用 Claude Code 等 AI 工具協作。
這裡從 2019 年開始記錄技術筆記,也收錄電影、遊戲等生活點滴與旅遊見聞。文章多半是學習過程的整理,有錯誤或想討論的地方,歡迎在文章底下留言。
📚 系列文章
部落格裡有幾個系列文章,建議從第一篇依序讀起;點開就能看到整個系列的文章清單。
開發心法6 篇從需求確認、設計協作到合併節奏與交接文件,小團隊裡的開發流程心得
- 小步合併,讓 CI 早一點說話:一次 Semgrep 掃描教我的事
- 設計稿還沒定案,開發可以先做什麼
- 需求先講清楚:User Story 與驗收標準怎麼幫團隊少走冤枉路
- 一個人做專案,也要寫給下一個人看的文件
- 領域知識太重的案子:工程師怎麼邊做邊學
- 跟 AI 一起寫程式:從一份 CLAUDE.md 到 Skills 跟規範
相關標籤
Understand JavaScript26 篇從執行環境、作用域、閉包到原型鏈,重新理解 JavaScript 的運作方式
- Understand JavaScript #0 目錄
- Understand JavaScript #1 How JS Reads Code
- Understand JavaScript #2 語法作用域 (Lexical Scope)
- Understand JavaScript #3 Name-Value Pair
- Understand JavaScript #4 Execution Context - How JS Works Behind The Scenes
- Understand JavaScript #5 範圍鏈 (Scope Chain)
- Understand JavaScript #6 Event Loop
- Understand JavaScript #7 型別 (Types)
- Understand JavaScript #8 運算子 (Operators)
- Understand JavaScript #9 物件實體語法 (Object Literal Syntax)
- Understand JavaScript #10 函式就是物件 (Functions Are Objects)
- Understand JavaScript #11 傳值和傳參考
- Understand JavaScript #12 物件 × 函式 × this
- Understand JavaScript #13 函式參數與 arguments、spread
- Understand JavaScript #14 立即呼叫的函式表達式 (IIFEs) 與安全程式碼
- Understand JavaScript #15 閉包 (Closure)
- Understand JavaScript #16 函式工廠 (Function Factory)
- Understand JavaScript #17 回呼函式 (Callback Function)
- Understand JavaScript #18 bind()、call() 與 apply()
- Understand JavaScript #19 Functional Programming ft. Underscore, Lodash
- Understand JavaScript #20 物件導向與原型繼承
- Understand JavaScript #21 使用建構式自定義原型
- Understand JavaScript #22 內建的函式建構子
- Understand JavaScript #23 使用 Object.create 建立多層繼承
- Understand JavaScript #24 ES6 Class
- Understand JavaScript #25 解析 toString() 方法 ft. typeof, instanceof
演算法與資料結構18 篇用 JavaScript 練習常見的演算法題目與資料結構
- [Algorithms] Fizz Buzz
- [Algorithms] Time Complexity & Big O Notation
- [Algorithms] Harmless Ransom Note
- [Algorithms] Is Palindrome
- [Algorithms] Caesar Cipher
- [Algorithms] Reverse Words in a Sentence
- [Algorithms] Reverse Array In Place
- [Algorithms] Mean Median Mode
- [Algorithms] Two Sum
- [Algorithms] Binary Search
- [Algorithms] Fibonacci vs. Memorized Fibonacci
- [Algorithms] Sieve Of Eratosthenes
- [Algorithms] Bubble Sort
- [Algorithms] Merge Sort
- [Algorithms] Max Stock Profit
- [Data Structures] Linked Lists
- [Data Structures] Binary Search Trees
- [Data Structures] Hash Tables
React35 篇Hooks、狀態管理、路由與元件設計的學習筆記
- [React] 正確地使用 State 與 useState Hook
- [React] Lifting The State Up
- Styling React Components
- Cleaner Code with React Fragments & Portals
- 關於 React Refs 的概念,以及如何 Forwarding Refs
- Forms in React
- Understanding React's useEffect Hook
- 更強大的 React 狀態管理工具 useReducer Hook
- 使用 React Context 處理全域狀態
- Introducing React.memo
- Introducing useMemo
- Sending Http Requests feat. Star Wars API
- Introduction to Class-based Components
- React Class-based Components 的生命週期(Lifecycle)
- 在 React Class-based Components 中使用 Error Boundary 處理錯誤
- React Code Reuse - Custom Hooks
- React Redux 基本配置與概念介紹
- React Redux with Functional Components
- React Redux with Class-based Components
- 使用 Redux Toolkit 更有效率地撰寫 Redux
- Redux Toolkit with Action Creator Thunk
- 瞭解 React Router V5 基礎知識
- 升級 React Router v6 筆記
- Deploying React Apps over Firebase Hosting
- 為什麼 React State 在 Event Listener 中沒有正確更新
- 為什麼在 Ant Design 使用 styled-components 傳遞 Boolean Props 會出現警告
- [React] Debouncing with useCallback Hook
- React Router V6 - Setup Routes
- React Router V6 - Fetch data with Loader
- React Router V6 - Form & Action
- 一起來試試看 NextJS 的 "useSWR" Hook 吧!
- React Code Reuse - Higher Order Component (HOC)
- 為你的 React Apps 加上動畫效果
- 使用 TanStack Query 輕鬆處理 HTTP Requests
- 把聊天室做成一個套件:Clouda 的前端架構與運作方式
相關標籤
Next.js12 篇從 Pages Router 到 App Router 的實作紀錄
- 基於檔案的 Next.js 頁面路由
- Next.js 預先渲染頁面與資料取得方式
- 一起來試試看 NextJS 的 "useSWR" Hook 吧!
- Next.js 的 "_document.js" 檔案使用紀錄
- 使用 Next Image 最佳化圖片
- 透過 Next.js API Routes 新增後端程式碼,實現 Fullstack React
- Next.js v12 到 v14 版本升級紀錄!有何不同?
- Next.js 15 Featured-based Folder Structure
- Next.js 15 (App Router) - Rendering
- 在 Next.js 中串接 Google Maps API
- 小步合併,讓 CI 早一點說話:一次 Semgrep 掃描教我的事
- 我這兩年在用的全端架構:monorepo、微服務與多租戶是怎麼組起來的
相關標籤
Vue16 篇Vue 2、Vuex 與 Quasar 的筆記
- Vue.js 呈現資料的幾種方法
- Vue.js Event Modifier
- Vue.js v-for 使用細節
- Vue.js Methods、Computed 與 Watch 的差異
- Vue 生命週期 (Lifecycle)
- Vue.js Props - 由外到內的資料傳遞
- Vue.js 使用 Emit 由內向外傳遞資訊
- Vue.js 使用 Filter 自訂資料呈現格式
- 使用 Vuex 管理資料狀態
- 使用 Vuex 模組化管理資料
- 客製化修改 Quasar Framework 元件樣式
- 在 Quasar 使用全域 Filter 過濾器
- Vue.js 使用 v-bind 動態綁定 Class、Style 與各種屬性
- 使用 vue-tribute 實作標記功能
- 使用 Quasar CLI 建構 SSR 網站
- Vue 3 Methods × Computed × Watch
相關標籤
Git6 篇基本指令、分支操作與遠端協作
- 基本 Command 操作與 Git 指令
- Git 分支、標籤、暫存檔案
- Git 同步遠端數據庫
- Git 常用指令大全
- Learn Git Branching - 學習 Git Branch 的小遊戲
- 一個人做專案,也要寫給下一個人看的文件
相關標籤
🛠️ 作品
- 楓葉工具箱 ToolMaple
楓之谷玩家的懷舊工具集:經典村莊 BGM、村莊巡禮、物品圖鑑、掉落物查詢與職業推薦,另附 BMI、時區、QR Code 等日常小工具,純前端即開即用。
- 楓之谷商城 MapleStory Shop
以經典道具為主題的電商練習作,從 2020 年的 Vue 版本一路重寫成 Next.js 前端搭配 NestJS 與 PostgreSQL 後端的全端專案。
- 楓之谷翻卡小遊戲 MapleStory Match Cards
30 張楓之谷主題卡片的翻卡配對小遊戲,用 React 19 與 Vite 打造,練習狀態管理與互動動畫。
📆 年度回顧
- 2025 年度回顧 2025/12/31
- 2024 年度回顧 2024/12/31
- 2023 年度回顧 2023/12/31
- 2022 年度回顧 2022/12/31
- 2021 年度回顧 2021/12/31
- 2020 年度回顧 2020/12/31
📮 訂閱與聯絡
新文章可以透過 RSS 訂閱;有任何想法或錯誤回報,歡迎寄信到 castle2668@gmail.com,或直接在文章底下留言。