docs: 更新 work_log 记录解耦路线图执行全过程
This commit is contained in:
@@ -2,6 +2,61 @@
|
||||
|
||||
## 2026-06-17
|
||||
|
||||
### 解耦路线图执行(P0 全部 + P1 大部分 + P2-2)
|
||||
|
||||
#### 问题背景
|
||||
按 `docs/architecture/audit/01_decoupling_roadmap.md` 解耦路线图,修复全部扫描出的过耦合问题。
|
||||
|
||||
#### 完成工作
|
||||
|
||||
##### 第一批:P0 严重问题修复(commit 220061d + 62be0b9)
|
||||
|
||||
1. **P0-3 循环依赖修复**:`shared/lib/audit-logger.ts`、`change-logger.ts`、`auth-guard.ts` 将 `import { auth } from "@/auth"` 改为动态 import,消除 shared → auth 反向依赖
|
||||
2. **P0-5 messaging 改用 dispatcher**:`messaging/actions.ts` 将 `createNotification` 替换为 `sendNotification`(来自 notifications/dispatcher),支持用户通知偏好和多渠道
|
||||
3. **P0-6 统一 classSchedule 写入口**:`scheduling/data-access.ts` 新增 4 个统一写函数(insertClassScheduleItem/updateClassScheduleItemById/deleteClassScheduleItemById/replaceClassSchedule),classes 和 scheduling/actions 改为调用这些函数
|
||||
4. **P0-2 homework/data-access.ts 拆分**:1038→596 行,新增 `stats-service.ts`(346 行)承载统计业务逻辑
|
||||
5. **P0-4 dashboard 解耦**:204→47 行,`getAdminDashboardData` 改用 `Promise.all` 调用 6 个模块的 `get[Module]DashboardStats()` 函数
|
||||
6. **P0-1 classes/data-access.ts 拆分**:2090→656 行,拆分为 4 个新文件(data-access-stats/schedule/students/admin.ts),通过 re-export 保持向后兼容
|
||||
|
||||
##### 第二批:P1 较严重问题修复(commit 2c8e229)
|
||||
|
||||
7. **P1-6 notifications 反向依赖修复**:`notifications/channels/in-app-channel.ts` 将静态 import messaging 改为动态 import
|
||||
8. **P1-3 auth.ts 拆分**:293→208 行,拆分出 4 个 shared/lib 文件(role-utils.ts/bcrypt-utils.ts/http-utils.ts/password-security-service.ts)
|
||||
9. **P1-4 users/import-export.ts 拆分**:拆分出 `user-service.ts`(用户创建+密码哈希)和 `class-registration.ts`(班级注册委托 classes/data-access)
|
||||
|
||||
##### 第三批:P1-2 actions 层 DB 操作下沉(commit 84d6636)
|
||||
|
||||
10. **exams/actions.ts**:移除所有 db 直接操作,新增 7 个 data-access 函数(getExamCreatorId/updateExamWithQuestions/deleteExamById/duplicateExam/getExamPreview/getExamSubjects/getExamGrades)。actions.ts 831→766 行
|
||||
11. **homework/actions.ts**:新建 `data-access-write.ts`(285 行)含 10 个函数,actions.ts 387→239 行
|
||||
12. **questions/actions.ts**:新增 4 个 data-access 函数(createQuestionWithRelations/updateQuestionById/deleteQuestionByIdRecursive/getKnowledgePointOptions),actions.ts 294→177 行
|
||||
13. **announcements/actions.ts**:新增 5 个 data-access 函数(insertAnnouncement/updateAnnouncementById/deleteAnnouncementById/publishAnnouncementById/archiveAnnouncementById),actions.ts 242→231 行
|
||||
|
||||
##### 第四批:P2-2 ai.ts 拆分(commit 6588f74)
|
||||
|
||||
14. **shared/lib/ai.ts 拆分**:247 行拆分为 `shared/lib/ai/` 目录 6 个文件(payload-parser/api-key-crypto/provider-config/client/errors/index),原 ai.ts 保留为向后兼容重导出
|
||||
|
||||
##### 第五批:架构文档同步 + 全文档合规检查(commit 0423b2b + 4d659ad)
|
||||
|
||||
15. 同步更新 004/005/007/audit 文档反映所有解耦变更
|
||||
16. 全项目 32 个文档合规检查与修正:
|
||||
- 修正编码规范 Prettier 配置不一致(semi: false, singleQuote: false)
|
||||
- 修正代码示例中的 any→unknown、缺少返回类型、未用 import type、as 断言
|
||||
- 修正 36 处过时文件路径(c:/Users/xiner/ → e:/Desktop/CICD/)
|
||||
- 修正行数不准确、函数名错误(dispatchNotification→sendNotification 等)
|
||||
- 同步已修复问题状态标记
|
||||
|
||||
#### 未修复项
|
||||
- **P1-1**:跨模块直接 DB 查询(影响范围大,需逐步替换)
|
||||
- **P1-5**:proctoring 死代码(用户决定保留)
|
||||
- **P2-1**:schema.ts 按业务域拆分(需全面回归测试)
|
||||
|
||||
#### 验证
|
||||
- `npx tsc --noEmit`:0 错误
|
||||
- `npm run lint`:0 错误
|
||||
- 所有文件均在行数限制内
|
||||
|
||||
---
|
||||
|
||||
### 编码规范适配与配置完善
|
||||
|
||||
#### 问题背景
|
||||
|
||||
Reference in New Issue
Block a user