RN 向 H5 分阶段灰度迁移方案
需求背景
RN 项目开发效率低且维护成本高。迁移过程中需保持旧业务运行,并同步进行少量 UI 调整。
灰度策略
灰度目标
- 保证新旧版本数据兼容
- 验证系统稳定性,包括:
- 接口报错率
- 页面加载时间
- 关键操作埋点数据
3. 用户反馈,做问卷调查(本次灰度不考虑)
灰度维度
- 项目维度:针对指定项目或项目下的特定路由
- 业务维度:按集团 > 店铺 > 门店 > 用户层级进行
- 版本限制:仅支持 App 版本 ≥ 5.9.0
放量规则
TIP
平衡影响范围与发布效率
- 内部测试阶段
- 小范围灰度:选择少量店铺/集团,观察 1-2 天
- 扩大范围:逐步扩展至大型店铺/集团,观察时间 ↑
- 全量发布:配置灰度结束时间,观察 24h 后手动确认发布完成(合并至 master)
线上问题应对方案
反馈渠道
- 前端埋点监控
- 后端性能监控
- 业务指标对比
- 用户直接反馈
问题处理
- 一键回滚:若出现核心模块错误、操作路径阻断等问题,立即通过配置平台切换回旧版,并视情况降低灰度比例
- 热修复:针对按钮样式等明确可快速修复的问题,采用热修复方式处理
开发中遇到的问题
- 数据兼容:新订单列表页面调用新 API 时,需差异化返回订单数据,确保新旧版本数据兼容
- 跨栈数据传递:未被迁移的 RN 页面在接收来自 H5 页面的数据时,需处理跨栈(H5 → 原生 → RN)的参数传递问题,例如函数参数。解决方案:从上游 RN 页面获取组件实例,并通过实例调用对应方法