312 lines
5.7 KiB
Markdown
312 lines
5.7 KiB
Markdown
# 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
|
||
``` |