dramaling-vocab-learning/Learn重命名為Review計劃.md

171 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

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.

# Learn → Review 重命名計劃
**建立日期**: 2025-09-27
**目的**: 將所有 learn 相關命名改為 review使程式碼語義更清晰準確
---
## 📋 需要重命名的項目盤點
### **1. 目錄結構重命名**
#### **主要目錄**
```
FROM TO
/frontend/app/learn/ → /frontend/app/review/
/frontend/components/learn/ → /frontend/components/review/
/frontend/hooks/learn/ → /frontend/hooks/review/
/frontend/lib/services/learn/ → /frontend/lib/services/review/
```
#### **子目錄重命名**
```
FROM TO
/components/learn/tests/ → /components/review/review-tests/
```
### **2. 檔案重命名**
#### **核心檔案**
```
FROM TO
useLearnStore.ts → useReviewStore.ts
learnService.ts → reviewService.ts
TestRunner.tsx → ReviewRunner.tsx
```
#### **組件檔案 (可選重命名)**
```
FROM TO
ProgressTracker.tsx → ReviewProgressTracker.tsx
TaskListModal.tsx → ReviewTaskListModal.tsx
LoadingStates.tsx → ReviewLoadingStates.tsx
```
### **3. 程式碼內容修改**
#### **Import 路徑修改**
需要更新以下檔案中的import
- `/app/learn/page.tsx` (8個import)
- `/components/learn/TestRunner.tsx` (2個import)
- `/lib/services/learn/learnService.ts` (1個import)
```typescript
// FROM
import { ProgressTracker } from '@/components/learn/ProgressTracker'
import { useLearnStore } from '@/store/useLearnStore'
import { LearnService } from '@/lib/services/learn/learnService'
// TO
import { ReviewProgressTracker } from '@/components/review/ReviewProgressTracker'
import { useReviewStore } from '@/store/useReviewStore'
import { ReviewService } from '@/lib/services/review/reviewService'
```
#### **類別和介面重命名**
```typescript
// FROM → TO
useLearnStore useReviewStore
LearnState ReviewState
LearnService ReviewService
TestRunner ReviewRunner
// 函數名稱
initializeLearnSession initializeReviewSession
loadDueCards loadDueReviewCards (可選)
```
#### **註解和文字更新**
所有註解中的 "learn" 改為 "review"
```typescript
// FROM
// 學習會話狀態
// 載入到期詞卡
// 初始化學習會話
// TO
// 複習會話狀態
// 載入到期複習詞卡
// 初始化複習會話
```
### **4. 特殊考量**
#### **URL路由保持不變**
- **用戶訪問**: 仍然是 `http://localhost:3000/learn`
- **檔案路徑**: `/app/review/page.tsx` (內部重命名)
- **Next.js**: 需要考慮路由映射問題
#### **外部引用檢查**
需要檢查是否有其他檔案引用了learn相關組件
- Navigation.tsx 中的 learn 連結
- Dashboard.tsx 中的 learn 按鈕
- 其他頁面的跳轉邏輯
---
## 🚀 執行順序
### **階段一:目錄和檔案重命名** (15分鐘)
1. 重命名主要目錄結構
2. 重命名核心檔案
3. 更新檔案的export名稱
### **階段二:程式碼內容更新** (20分鐘)
1. 更新所有import路徑
2. 重命名類別和介面
3. 更新函數和變數名稱
4. 更新註解和字串
### **階段三:路由配置** (10分鐘)
1. 確認Next.js路由正常運作
2. 檢查外部引用是否正確
3. 測試頁面是否正常載入
### **階段四:測試和驗證** (15分鐘)
1. 檢查編譯是否通過
2. 測試功能是否正常
3. 確認沒有遺漏的引用
---
## ⚠️ 風險評估
### **低風險項目**
- 內部檔案重命名
- 註解和字串更新
- 組件內部邏輯
### **中風險項目**
- Import路徑更新 (可能遺漏)
- Store狀態管理 (需要仔細測試)
### **注意事項**
- URL路由 `/learn` 保持不變
- 確保所有依賴關係正確更新
- 備份重要檔案以防萬一
---
## 📝 驗證清單
### **重命名完成檢查**
- [ ] 所有目錄重命名完成
- [ ] 所有檔案重命名完成
- [ ] 所有import路徑更新
- [ ] 所有類別名稱更新
- [ ] 所有函數名稱更新
### **功能測試**
- [ ] 頁面可以正常載入
- [ ] 測驗組件正常顯示
- [ ] 狀態管理正常運作
- [ ] API調用正常
- [ ] 錯誤處理正常
### **外部整合測試**
- [ ] Navigation導航正常
- [ ] Dashboard跳轉正常
- [ ] 路由映射正確
這個重命名將讓程式碼語義更清晰,`review`(複習) 比 `learn`(學習) 更精確地描述這個功能的本質。