小程序进阶之路:跨平台开发避坑指南( 六 )

  • 用好函数 hook:针对不同端相同的逻辑放在函数中,有差异的逻辑可以单拆函数作为 beforeHook 和 afterHook 。
3 项目维护策略
项目输出多端后,每次改动回归就成为一个比较重要的问题,如何保证自己的代码不会再其它端上出问题?每次改一个小程序其他都要立即回归吗?如何快速整理其他端的改动?下面针对多端项目的维护总结了一些经验 。
1) 单测
针对核心逻辑编写测试,unit test 和 snapshot test,我们内部维护了一个针对端上 API 的 mock 测试库,整个测试可以在 node 环境中运行,保证运行效率 。
2) Commit 规范
指定一个 commit message 规范,可一眼看出你在做什么,在改哪一个端,以及后面回归策略时用到 。
3) git-hook
小程序进阶之路:跨平台开发避坑指南

文章插图
 
使用 githook 能保证上面的规范能够真正的遵循,保证每次提交的质量 。pre-commit 时跑一下 Eslint,然后校验一下 commit-message 是否符合规则,最后 push 时会跑一次整体的测试 。
4) 多端的回归策略
没有做 E2E 的主要原因是小程序限制,case 编写难度比较大,并且维护性低,无法自动化 。
目前我们是人工回归的,如何保证代码不会再其他端上出问题?难道每一次改一个小程序其它都要立即回归吗?回答下这两个问题,编写代码时考虑影响面,提交时提供足够的改动信息,合并时主要测当前端即可,不需要回归所有端 。等另一个端需要发布时,拉出版本的 commit-message,然后梳理出变更范围,在该端做回归即可 。这样做减少对测试的集中消耗,保障质量 。
4 展望
以上是我们对跨端项目的经验总结,包含技术演进历史以及差异控制策略 。跨端项目的难点就是处理差异 。
  • 端上能力的参差不齐、业务针对不同场景的定制,一旦控制不好,整个人项目的维护性就会大大降低 。
  • 业务方面要思考清楚,不同的端,是相似的更多,还是差异多 。
  • 框架方面,最近看到有开发者已经给 W3C 提小程序的白皮书了,总体朝着良性方向发展,这是一个好的开始,期待能够标准化小程序框架 。




推荐阅读