Files
hms/docs/discussions/2026-05-20-miniprogram-production-ready-brainstorm.md
iven 1e59007bd5 fix(mp): DevTools 卡死 + 主包 2MB→766KB + 代码质量 4 项全通过
根因:主包 2MB 全量组件注入导致 DevTools 渲染引擎内存渐增,
叠加离线时固定 3s 抑制期后的请求洪泛。

修复:
- app.config.ts 添加 lazyCodeLoading: requiredComponents
  主包 2.0MB→766KB,taro.js 526→131KB,vendors.js 230→28KB
- request.ts 离线抑制改为指数退避(3s→6s→12s→30s cap)
  后端不可达时自动延长抑制,防止请求风暴
- SegmentTabs Tab 接口改为 readonly,修复 TS 编译错误
- AbortController polyfill 补齐小程序运行时缺失
- 健康首页/设备同步/健康档案/报告/设置页 UI 重构
- 文章页公开端点适配游客访问
- 健康首页 Swiper 间隔优化 4s→5s,动画 500→300ms
2026-05-24 11:32:40 +08:00

4.6 KiB
Raw Blame History

小程序上线前五专家组深度审计 + 头脑风暴

日期: 2026-05-20 | 参与者: UX/UI 审计 / 性能稳定性 / 安全审计 / 产品架构 / 代码质量

背景

小程序62 页面 + 34 组件 + 38 service即将交付用户测试。启动 5 个并行专家组进行全方位深度审计,确保交付版本的质量和可用性。

五专家组综合评分

专家组 评分 CRITICAL HIGH MEDIUM LOW 总问题数
UX/UI 审计 6.2/10 B- 3 8 14 9 34
性能稳定性 6.5/10 B- 1 4 10 8 25
安全审计 5.1/10 D+ 2 5 8 6 21
产品架构 6.0/10 C+ 2 6 8 5 21
代码质量 0 2 3 0 134 空 catch + 10 any
综合 6.0/10 C+ 8 25 43 28 ~135+

CRITICAL 汇总(必须修复,阻断用户测试)

# 来源 问题 影响
1 产品 咨询创建页缺失,"发起咨询"按钮导航失败 核心咨询流程阻断
2 产品 随访流程不闭环(患者无触发入口 + 医生无执行页面) 医疗质量核心链路断裂
3 安全 硬编码管理员凭据 admin/Admin@2026 在源码中 反编译可获取管理员权限
4 安全 Token 明文存储在 Storagesecure-storage 实际无加密) 设备丢失 = 身份冒用
5 UX AI 聊天页 13 处硬编码字号,长者模式完全失效 TabBar 核心页老年用户不可用
6 UX 咨询详情页 14 处硬编码字号 医患沟通场景老年患者无法阅读
7 UX Loading 文字 28px 过大,误认为标题 视觉层级混乱
8 性能 咨询页长轮询可能永远不启动dataLoadedRef 时序竞争) 咨询消息收不到

HIGH 汇总(严重影响体验,应在上线前修复)

# 来源 问题
1 产品 "消息" Tab 实为 AI 聊天,非消息中心,命名误导
2 产品 预约创建未选就诊人,多就诊人场景不可用
3 产品 趋势图仅 7 天柱状图,缺长期趋势和对比
4 产品 日常监测/设备同步入口层级过深
5 UX 87 处页面硬编码字号,长者模式系统性失效
6 UX StatusTag 色值与设计系统不一致
7 UX 44 个页面缺少 ErrorState
8 UX AI 聊天页未使用 PageShell 组件
9 安全 X-Patient-Id/X-Tenant-Id Header 可能导致越权
10 安全 openid 明文存储和跨网络传输
11 安全 RichText XSS 绕过风险
12 性能 主包 12 页面可能超 2MB无法发布
13 性能 无虚拟滚动,长列表性能差
14 性能 首页 4 个并行 API 无批量优化
15 代码 134 处空 catch 静默吞错

头脑风暴 — 上线策略

方案 A: 保守上线(修复所有 CRITICAL + 安全加固)

时间: 3-4 天 范围: 8 个 CRITICAL + 安全 TOP 3 风险: HIGH 级别问题可能影响用户第一印象

方案 B: 全面打磨(修复 CRITICAL + HIGH + 关键 MEDIUM

时间: 7-10 天 范围: 全部 CRITICAL + HIGH + 选定 MEDIUM 风险: 延迟用户测试,但交付质量更高

方案 C: 分层交付(推荐)

时间: 分 3 批,每批 2-3 天 范围:

  • Batch 1 (P0, 2天): 安全 CRITICAL + 功能 CRITICAL + 性能 CRITICAL
  • Batch 2 (P1, 2天): UX 一致性 + 长者模式修复 + HIGH 级产品问题
  • Batch 3 (P2, 3天): MEDIUM 级优化 + 性能优化 + 代码质量

决策

采用方案 C 分层交付,优先确保安全和功能完整,然后打磨体验。

Batch 1 修复清单P0, 预估 2 天)

  1. 移除硬编码凭据 → 环境变量注入1h
  2. 确认后端不信任前端 Header2h
  3. 咨询创建页缺失 → 新增页面或移除入口按钮4h
  4. 咨询页长轮询启动时序修复2h
  5. Loading 文字 token 修正0.5h
  6. Token 存储安全加固4h— 可延至 Batch 2

Batch 2 修复清单P1, 预估 2 天)

  1. AI 聊天页 + 咨询详情页字号 token 替换4h
  2. 医生端核心页面字号 token 替换3h
  3. StatusTag 色值对齐设计系统1h
  4. AI 聊天页接入 PageShell2h
  5. 移除 forceSetAuth bridge0.5h
  6. 随访流程闭环补全4h— 可延至 Batch 3

Batch 3 修复清单P2, 预估 3 天)

  1. 全局 87 处硬字号 → token 批量替换
  2. 74 处硬 padding → token 批量替换
  3. 44 个页面补充 ErrorState
  4. 主包瘦身 + splitChunks 配置
  5. 空 catch 添加日志
  6. AI 聊天历史持久化(接后端 API