Files
hms/docs/tech-debt-board.md
iven 20d606d21c docs,ci: P2 质量体系 — 技术债看板 + 冻结策略 + fix 率趋势
- 新增 fix-rate-trend.sh: 按周统计 fix 率趋势 + 类别分布
  当前: 22.8% (177/776), 目标 < 15%
- 新增 docs/tech-debt-board.md: 技术债看板
  含度量总览、高利息债务排序、已偿还债务、偿还优先级
- 新增 docs/discussions/2026-05-13-frozen-module-strategy.md:
  6 个冻结模块策略 + 14 天超时规则 + 解冻/移除操作流程
2026-05-13 17:19:07 +08:00

4.7 KiB
Raw Blame History

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 待决策

冻结策略

  1. 超时规则: 冻结超过 14 天自动触发决策评审
  2. 决策选项: (a) 解冻并完成 (b) 继续冻结并设新截止日 (c) 移除前端页面和菜单
  3. 当前: 全部 6 个模块冻结于 2026-05-05超时日期 2026-05-19
  4. 建议: 优先解冻"透析管理"(已有完整后端)和"班次管理"(已有完整后端+前端)

偿还优先级排序

优先级 债务 预计投入 预期效果
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 模块可维护性