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

4.6 KiB
Raw Blame History

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)
// 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'

類別和介面重命名

// FROM → TO
useLearnStore         useReviewStore
LearnState           ReviewState
LearnService         ReviewService
TestRunner           ReviewRunner

// 函數名稱
initializeLearnSession     initializeReviewSession
loadDueCards              loadDueReviewCards (可選)

註解和文字更新

所有註解中的 "learn" 改為 "review"

// 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(學習) 更精確地描述這個功能的本質。