dramaling-vocab-learning/docs/03_development/claude-code-development-sop.md

312 lines
5.7 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
# 方法 2Git 回滾
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
```