HMS 技术债看板
最后更新: 2026-05-13 | 分支: feat/media-library-banner
度量总览
| 指标 |
当前值 |
目标 |
状态 |
| Fix 率 |
22.8% (177/776) |
< 15% |
🟡 需改善 |
| 后端测试 |
999 个函数 |
维持 |
🟢 健康 |
| 前端测试覆盖 |
62/235 文件 (26%) |
> 40% |
🟡 需改善 |
| 小程序测试 |
9 文件 / 125 源文件 (7%) |
> 80% |
🔴 真空 |
| utoipa 注解 |
Health 22/31, AI 0/19 |
> 80% |
🔴 缺失 |
| 大文件 (>800 行) |
15 个 |
< 5 个 |
🟡 需拆分 |
| production unwrap |
43 处 |
< 10 |
🟡 需清理 |
| TODO/FIXME |
5 处 |
清零 |
🟢 可控 |
| 前端 any 类型 |
1 处 |
0 |
🟢 可控 |
| console.log |
0 处 |
0 |
🟢 清洁 |
高利息债务(修复频率 × 影响范围)
TD-1: utoipa 注解覆盖率 33% [利息: 高]
- 当前: 22/64 handler 文件有 utoipa 注解,AI 模块 0/19
- 影响: OpenAPI 文档不完整,前端无法自动生成 API 客户端
- 修复成本: 2-3d
- 计划: P2-2 openapi-typescript 自动生成时一并补全
TD-2: 大文件未拆分 [利息: 中]
| 文件 |
行数 |
模块 |
建议 |
| data_service.rs |
1907 |
plugin |
按实体拆分 |
| manifest.rs |
1809 |
plugin |
解析/验证/序列化分离 |
| dynamic_table.rs |
1758 |
plugin |
SQL 构建/执行分离 |
| module.rs |
1220 |
message |
路由注册独立文件 |
| service.rs |
1136 |
plugin |
按功能拆分 |
| data_handler.rs |
1121 |
plugin |
CRUD/查询/导入分离 |
| action_inbox_service.rs |
1104 |
health |
查询/聚合/通知分离 |
| follow_up_service.rs |
1000 |
health |
任务/记录/模板分离 |
| main.rs |
981 |
server |
路由注册独立模块 |
| validation.rs |
916 |
health |
按实体类型拆分 |
| consultation_service.rs |
859 |
health |
会话/消息/统计分离 |
| points_service/event.rs |
858 |
health |
事件类型拆分 |
| fhir/handler.rs |
824 |
health |
按资源类型拆分 |
TD-3: erp-plugin 巨石模块 [利息: 中]
- 当前: 7 个文件 > 800 行,总 189 文件
- 影响: 编译时间长、认知负担大
- 修复成本: 3-5d
- 优先级: 低(冻结功能,暂不活跃开发)
TD-4: production unwrap 43 处 [利息: 低]
- 当前: 从 514 降至 43,剩余多为安全解包(如
get() 已确认存在)
- 影响: 潜在 panic 风险
- 修复成本: 1d
- 优先级: 低(Clippy 0 警告,剩余均为安全场景)
已偿还的债务
| 债务 |
偿还日期 |
投入 |
| event.rs 2871 行 |
2026-05-09 |
拆分为 13 个领域文件 |
| module.rs 1595 行 |
2026-05-09 |
拆分为 13 个子模块 |
| Clippy 警告 |
2026-05-07 |
全 workspace 0 警告 |
| production unwrap 514→43 |
2026-05-07 |
批量替换为 expect/unwrap_or_default |
| 权限码 4 处手动同步 |
2026-05-13 |
CI 检查脚本 + seed 补全 |
| 前后端 API 路径不一致 |
2026-05-13 |
CI 检查脚本归一化 |
| 小程序 0 测试 |
2026-05-13 |
service 层 75 断言覆盖 |
冻结模块看板
| 模块 |
路由 |
后端 |
前端 |
冻结日期 |
超时日期 |
状态 |
| 护理计划 |
/health/care-plans |
Entity+Service+Handler 已有 |
列表+详情页已有 |
2026-05-05 |
2026-05-19 |
待决策 |
| 班次管理 |
/health/shifts |
Entity+Service+Handler 已有 |
列表+详情页已有 |
2026-05-05 |
2026-05-19 |
待决策 |
| 家庭代理 |
/health/family-proxy |
Entity+Service+Handler 已有 |
页面已有 |
2026-05-05 |
2026-05-19 |
待决策 |
| 药物管理 |
/health/medications |
部分实现 |
页面已有 |
2026-05-05 |
2026-05-19 |
待决策 |
| 透析管理 |
/health/dialysis |
Entity+Service 已有 |
列表页已有 |
2026-05-05 |
2026-05-19 |
待决策 |
| 排班日历 |
/health/schedules |
复用 appointment |
日历页已有 |
2026-05-05 |
2026-05-19 |
待决策 |
冻结策略
- 超时规则: 冻结超过 14 天自动触发决策评审
- 决策选项: (a) 解冻并完成 (b) 继续冻结并设新截止日 (c) 移除前端页面和菜单
- 当前: 全部 6 个模块冻结于 2026-05-05,超时日期 2026-05-19
- 建议: 优先解冻"透析管理"(已有完整后端)和"班次管理"(已有完整后端+前端)
偿还优先级排序
| 优先级 |
债务 |
预计投入 |
预期效果 |
| 1 |
补全 utoipa 注解 (AI 模块) |
1d |
OpenAPI 文档完整 |
| 2 |
拆分 main.rs (981 行) |
0.5d |
server 模块可维护性 |
| 3 |
拆分 validation.rs (916 行) |
0.5d |
health 模块可读性 |
| 4 |
清理剩余 43 处 unwrap |
1d |
消除潜在 panic |
| 5 |
拆分 service 大文件 (4 个 > 900 行) |
2d |
health 模块可维护性 |