171 lines
4.6 KiB
Markdown
171 lines
4.6 KiB
Markdown
# 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`(學習) 更精確地描述這個功能的本質。 |