小程序云开发持续交付和质量管控(下)

保证交付效率和质量把控是一项业务长远、稳定发展的必经之路,来自微信支付的张洪晖在第二届小程序云开发技术峰会上就介绍了高速发展的业务团队如何利用小程序云开发搞定持续交付和质量管控。html

上半部分文章中,做者主要介绍了微信支付境外团队应用云开发的背景,以及在持续交付侧作出的探索实践。下半部分文章将聚焦于团队在质量管控中作出的尝试。前端

先来介绍一下金融业务下的质量难题,不少团队可能常常会遇到一些质量问题。你们能够思考一下,在不把控质量的状况下追求效率是否有实质性做用?redis

对于这个问题,以微信支付为例:微信支付是一个传统金融与互联网的结合。传统金融的稳定性要求比较高,必定程度上能够牺牲效率来换取稳定性,而互联网追求的就是效率,当质量和效率进行结合的时候,对团队要求是很是高的。小程序

举个例子,咱们团队小程序的发布节奏是平均每周一个版本,天天平均 新增800行代码、修改300行代码。业务压力来了以后,开发同窗进行代码的变动时就涉及到质量管控问题,这反过来可能会影响效率。例如,在进行重构和代码的修修补补时,其余需求的涌入,会加大整个业务的压力,久而久之,极可能进入到一种负循环中。后端

那么,如何破局?常规思路下,业务压力大,首先想到就是经过增长人力来缓解业务压力,但因为每一个人的代码风格不尽相同,人员增多也增长了代码的管控难度。而在重构方面,团队经过持续交付的流水线、重构抑制效率的损失,但反过来,也存在重构某些代码影响线上业务的风险。安全

由此,为了解决这个痛点,团队提出了很是重要的一点——质量管控。服务器

下面重点介绍下团队是如何省心又省力地作好质量管控。微信

这是团队在优化质量管控前的状况,整体来讲,流程分为需求、开发、发布和线上阶段。归纳来讲,能够分为事前、事中和过后三个阶段。架构

对于金融业务来讲,这真的够了吗?事实上,以上流程存在必定的隐患,以小程序的底层架构为例,相信对小程序开发熟悉的同窗很是了解,图中的逻辑层和渲染层是分离的,也即逻辑层没法拿到渲染层的结果,没有办法对渲染层进行监控。less

假设在这种状况下,帐单和资金展现出现了问题,必定会引发用户的投诉,那么,如何防范这种状况的发生?

首先,团队便想到作标准化的组件,其中最主要的就是金额渲染的组件,不单要作,还要考虑开发同窗有没有真正用起来。为此,在开发流程当中,会对敏感字段进行一些扫描,来看一下组件是否有被正确的使用。

下图左侧是一个例子,咱们经过关键字检测到这段代码没有正确使用金额渲染的组件,就当即中止了代码的提交。而且,为了加强检测的力度,团队也会在流水线中进行关键字的扫描。

静态金额渲染检查必定程度上解决了咱们的问题,可是它足够安全吗?固然不是的。试想,若是关键词中的 money 拼错了,写成了 mnoey,是否是就被漏掉了?另外咱们 UI 也有可能溢出,致使帐单或资金展现出错的风险。

这里团队就引入了一个 UI 自动化截屏的方案,底层基于小程序开发者工具的 automator 的能力,实现自动地拉起开发者工具,而且跳转到对应的页面,而后对数量进行拦截(提早写好接口用例),在拦截以后,会对页面进行滚动截屏,截下来的图片会进行图片的比对并归档,在归档以后,还会通知产品和研发去进行审核。

举个例子,咱们用一个命令启动了开发者工具,在开发者工具启动以后,会启动模拟器,模拟器会根据咱们预设好的一个路径去跳转对应的页面,并自动进行滚动截屏。当咱们截完全部的页面后,会在本地将这些图片保存下来,以供比对和归档。

左边是咱们的旧截图,右边是咱们的新截图,两个截屏之间进行对比,中间是对比,发现底部的优惠券区域有所变化:新增了小红点。由此咱们就只需关心本次变动是否有影响到这一块逻辑,若是有的话,须要及时排查问题。

这里就是刚才讲到的质量管控的整体思路,是分为事前、事中和过后三个阶段进行。

最后,总结下团队为何使用云开发,以及云开发到底给了咱们什么样的能力?

第一,云开发给了前端同窗一个全栈开发的能力,同时对后端同窗也是很是受益的,让后端能够更关注业务的稳定性。

第二,云开发成本很是低,具体包括低开发成本,低开发门槛和零运维成本。

第三,团队很是看重云开发的生态能力,包括接入了微信支付、COS 和 redis各类各样的能力套件,都支持开箱即用。

用上云开发以后,你们也能够思考一下是否有「用好」云开发呢?本次分享的内容主要集中在如何用云开发提高效能,包括持续构建、持续发布 ABTest 方面,而在质量方面,咱们也会有灰度发布、自动化测试以及 UI 的自动截屏,另外,使用云开发的过程当中也运用到了微信的私有链路,能够提供强大的安全防刷能力。不管路径如何,这些目标都是同样的,最终都是为了更好地支持咱们业务的快速迭代以及小步快跑。

但愿你们都能基于云开发这个研发平台,多思考,多尝试,站在云开发的“肩膀”去作出更多适用于自身业务的改良。

产品介绍

云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为开发者提供高可用、自动弹性扩缩的后端云服务,包含计算、存储、托管等serverless化能力,可用于云端一体化开发多种端应用(小程序,公众号,Web 应用,Flutter 客户端等),帮助开发者统一构建和管理后端服务和云资源,避免了应用开发过程当中繁琐的服务器搭建及运维,开发者能够专一于业务逻辑的实现,开发门槛更低,效率更高。

相关文章
相关标签/搜索