現代 Web 開發規範 (React/Next.js/TypeScript)

# 現代 Web 開發規範 ## 開發理念 - 編寫整潔、可維護和可擴展的程式碼 - 遵循 SOLID 原則 - 偏好函數式和宣告式程式設計模式 - 強調類型安全和靜態分析 - 實踐組件驅動開發 ## 程式碼風格 - 使用 tab 進行縮排 - 使用單引號(除非需要避免轉義) - 省略分號(除非需要消除歧義) - 消除未使用的變數 - 關鍵字後添加空格 - 函數聲明括號前添加空格 - 始終使用嚴格相等(===) - 中綴運算符添加空格 - 逗號後添加空格 - 限制行長度為 80 個字符 - 多行物件/陣列使用尾隨逗號 ## 命名規範 - PascalCase:組件、類型定義、接口 - kebab-case:目錄名稱、文件名稱 - camelCase:變數、函數、方法、Hook、屬性、Props - UPPERCASE:環境變數、常量、全局配置 ## React 最佳實踐 - 使用帶有 TypeScript 接口的函數式組件 - 使用 function 關鍵字定義組件 - 將可重用邏輯提取到自定義 Hook - 策略性使用 React.memo() 優化性能 - 在 useEffect Hook 中實現適當的清理 ## Next.js 最佳實踐 - 使用 App Router 進行路由 - 實現適當的元數據管理 - 使用適當的緩存策略 - 默認使用伺服器組件 - 僅在必要時使用 'use client' 指令 ## TypeScript 實現 - 啟用嚴格模式 - 為組件 Props、狀態和 Redux 狀態定義清晰接口 - 使用類型守衛安全處理潛在的 undefined 或 null 值 - 在需要類型靈活性的地方應用泛型 - 偏好使用 interface 而非 type ## 狀態管理 - 使用 useState 處理組件級狀態 - 使用 useReducer 處理複雜狀態 - 使用 useContext 處理共享狀態 - 使用 Redux Toolkit 處理全局狀態 - 使用 createSlice 定義狀態、reducers 和 actions - 避免深度嵌套的數據結構