# Claude Code 開發 SOP 流程 ## 🎯 目標 確保使用 Claude Code 進行開發時,能夠穩定、有序地修正和增強現有功能。 ## 📋 標準作業流程 ### 1️⃣ 需求分析階段 #### 1.1 明確定義需求 ```markdown ## 修改需求 - **功能名稱**: [例如: 登入流程] - **現況問題**: [描述現有問題] - **期望結果**: [描述預期行為] - **影響範圍**: [列出可能受影響的檔案/功能] - **優先級**: [高/中/低] ``` #### 1.2 需求模板 ```markdown # 需求:[功能名稱] ## 現況 - 現有行為: - 問題描述: - 相關檔案: ## 期望 - 新行為: - 成功標準: - 測試案例: ## 限制 - 必須保留: - 不可更動: - 效能要求: ``` ### 2️⃣ 開發前準備 #### 2.1 環境檢查 ```bash # 1. 確認開發伺服器狀態 npm run dev # 2. 確認 Git 狀態 git status # 3. 創建新分支 git checkout -b feature/[功能名稱] ``` #### 2.2 備份關鍵檔案 ```bash # 備份將要修改的檔案 cp app/[檔案名].tsx app/[檔案名].tsx.backup ``` ### 3️⃣ 與 Claude Code 協作流程 #### 3.1 初始對話模板 ```markdown 我需要修改 [功能名稱],請幫我: 1. 先讀取相關檔案: - [檔案路徑1] - [檔案路徑2] 2. 分析現有實作 3. 確認修改方案 4. 實施修改 要求: - 保持現有功能不受影響 - 遵循現有程式碼風格 - 加入適當的錯誤處理 ``` #### 3.2 階段性確認 ```markdown ## 檢查點 - [ ] 需求理解正確 - [ ] 影響範圍評估完成 - [ ] 修改方案確認 - [ ] 程式碼修改完成 - [ ] 功能測試通過 - [ ] 無破壞現有功能 ``` ### 4️⃣ 實作階段 #### 4.1 修改優先順序 1. **資料模型** (types, interfaces) 2. **API 邏輯** (API routes, services) 3. **狀態管理** (stores, contexts) 4. **UI 組件** (components) 5. **樣式調整** (CSS, Tailwind) #### 4.2 程式碼修改原則 ```typescript // ❌ 避免:直接覆蓋整個檔案 // ✅ 建議:精準修改特定函數或區塊 // ❌ 避免:刪除未使用的程式碼 // ✅ 建議:先註解,確認無誤後再刪除 // ❌ 避免:一次修改多個功能 // ✅ 建議:單一功能逐步修改 ``` #### 4.3 安全修改策略 ```markdown ## 修改策略 1. **增量修改**:先新增,後替換,最後刪除舊代碼 2. **功能開關**:使用 feature flag 控制新舊功能 3. **漸進式重構**:保持功能可用的前提下逐步改進 ``` ### 5️⃣ 測試驗證 #### 5.1 功能測試清單 ```markdown ## 測試項目 - [ ] 正常流程測試 - [ ] 邊界條件測試 - [ ] 錯誤處理測試 - [ ] 響應式設計測試 - [ ] 效能測試 ``` #### 5.2 測試指令 ```bash # 1. 本地測試 npm run dev # 手動測試各項功能 # 2. 建置測試 npm run build # 確認無編譯錯誤 # 3. TypeScript 檢查 npx tsc --noEmit # 4. Lint 檢查 npm run lint ``` ### 6️⃣ 版本控制 #### 6.1 提交規範 ```bash # 提交格式 git add [修改的檔案] git commit -m "[type]: [description]" # Type 類型: # feat: 新功能 # fix: 修復錯誤 # refactor: 重構 # style: 樣式修改 # docs: 文檔更新 # test: 測試相關 # chore: 其他修改 ``` #### 6.2 提交前檢查 ```markdown ## 提交前確認 - [ ] 功能正常運作 - [ ] 無 console.log 遺留 - [ ] 無敏感資訊外洩 - [ ] 程式碼已格式化 - [ ] 註解已更新 ``` ### 7️⃣ 問題處理 #### 7.1 常見問題與解決 ```markdown ## 編譯錯誤 1. 清除快取:rm -rf .next 2. 重新安裝:rm -rf node_modules && npm install 3. 重啟開發伺服器 ## 樣式不生效 1. 檢查 Tailwind 類名 2. 清除瀏覽器快取 3. 檢查 CSS 載入順序 ## 狀態不同步 1. 檢查 useState/useEffect 2. 確認資料流向 3. 使用 React DevTools 調試 ``` #### 7.2 回滾策略 ```bash # 方法 1:使用備份 cp app/[檔案名].tsx.backup app/[檔案名].tsx # 方法 2:Git 回滾 git checkout -- [檔案路徑] # 方法 3:回到上一個提交 git reset --hard HEAD^ ``` ### 8️⃣ 最佳實踐 #### 8.1 與 Claude Code 溝通技巧 ```markdown ## 有效溝通 1. **具體明確**:提供檔案路徑、行號、函數名 2. **分步進行**:複雜修改分解為多個小步驟 3. **即時反饋**:發現問題立即告知 4. **保存對話**:重要決策和方案記錄下來 ``` #### 8.2 開發習慣 ```markdown ## 良好習慣 - ✅ 每完成一個小功能就測試 - ✅ 定期提交到 Git - ✅ 保持開發伺服器運行 - ✅ 使用瀏覽器開發工具監控 - ✅ 記錄修改日誌 ``` ### 9️⃣ 文檔維護 #### 9.1 修改記錄模板 ```markdown # 修改記錄 ## [日期] - [功能名稱] ### 修改內容 - 檔案:[路徑] - 改動:[描述] - 原因:[為什麼修改] ### 測試結果 - [x] 功能測試通過 - [x] 無副作用 - [x] 效能正常 ### 備註 [任何特殊說明] ``` #### 9.2 知識累積 ```markdown ## 經驗總結 - 問題:[遇到的問題] - 解決:[解決方案] - 學習:[獲得的經驗] - 建議:[未來改進建議] ``` ## 🔄 持續改進 ### 定期檢視 - 每週回顧開發流程 - 記錄痛點和改進點 - 更新 SOP 文檔 ### 工具優化 - 建立程式碼片段庫 - 自動化重複任務 - 優化開發環境配置 ## 📊 檢查清單總覽 ```markdown # 快速檢查清單 ## 開始前 - [ ] 需求明確 - [ ] 環境就緒 - [ ] 分支創建 ## 開發中 - [ ] 讀取相關檔案 - [ ] 分析影響範圍 - [ ] 逐步實施修改 - [ ] 即時測試驗證 ## 完成後 - [ ] 全面功能測試 - [ ] 程式碼檢查 - [ ] Git 提交 - [ ] 文檔更新 ``` ## 🚀 快速開始指令 ```bash # 1. 開始新功能 git checkout -b feature/new-feature npm run dev # 2. 測試修改 npm run build npx tsc --noEmit # 3. 提交更改 git add . git commit -m "feat: add new feature" git push origin feature/new-feature ```