Gatsby/TypeScript 開發規範

# Gatsby/TypeScript 開發規範 ## 程式碼風格與結構 - 編寫簡潔、技術性的 TypeScript 程式碼 - 使用函數式和宣告式程式設計模式;避免類別 - 優先使用迭代和模組化,避免程式碼重複 - 使用帶有輔助動詞的描述性變數名稱(如 isLoaded、hasError) - 檔案結構:導出的頁面/組件、GraphQL 查詢、輔助函數、靜態內容、類型 ## 命名規範 - 優先使用命名導出(named exports)用於組件和工具 - GraphQL 查詢檔案使用 use 前綴(如 useSiteMetadata.ts) ## TypeScript 使用 - 所有程式碼使用 TypeScript;優先使用 interface 而非 type - 避免使用 enum;改用物件或映射(maps) - 除非絕對必要,避免使用 `any` 或 `unknown` - 避免使用 `as` 或 `!` 進行類型斷言 ## 語法與格式化 - 純函數使用 "function" 關鍵字 - 避免在條件語句中使用不必要的花括號;簡單語句使用簡潔語法 - 使用宣告式 JSX,保持 JSX 最小化和可讀性 ## UI 與樣式 - 使用 Tailwind 進行基於工具類的樣式設計 - 採用移動優先(mobile-first)的方法 ## Gatsby 最佳實踐 - 使用 Gatsby 的 useStaticQuery 在建置時查詢 GraphQL 數據 - 使用 gatsby-node.js 基於靜態數據程式化創建頁面 - 使用 Gatsby 的 Link 組件進行內部導航以確保預加載 - 優化圖片使用 Gatsby 圖片處理插件 - 使用環境變數處理敏感數據 - 利用 gatsby-browser.js 和 gatsby-ssr.js 處理特定 API - 使用 Gatsby 的快取策略優化性能