乐趣区

关于小程序:小程序云开发持续交付和质量管控下

保障交付效率和品质把控是一项业务久远、稳固倒退的必经之路,来自微信领取的张洪晖在第二届小程序云开发技术峰会上就介绍了高速倒退的业务团队如何利用小程序云开发搞定继续交付和品质管控。

在上半局部文章中,作者次要介绍了微信领取境外团队利用云开发的背景,以及在继续交付侧做出的摸索实际。下半局部文章将聚焦于团队在品质管控中做出的尝试。

为什么须要品质监控
先来介绍一下金融业务下的品质难题,很多团队可能常常会遇到一些品质问题。大家能够思考一下,在不把控品质的状况下谋求效率是否有实质性作用?

对于这个问题,以微信领取为例:微信领取是一个传统金融与互联网的联合。传统金融的稳定性要求比拟高,肯定水平上能够就义效率来换取稳定性,而互联网谋求的就是效率,当品质和效率进行联合的时候,对团队要求是十分高的。

举个例子,咱们团队小程序的公布节奏是均匀每周一个版本,每天均匀 新增 800 行代码、批改 300 行代码。业务压力来了之后,开发同学进行代码的变更时就波及到品质管控问题,这反过来可能会影响效率。例如,在进行重构和代码的修修补补时,其余需要的涌入,会加大整个业务的压力,长此以往,很可能进入到一种负循环中。

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

由此,为了解决这个痛点,团队提出了十分重要的一点——品质管控。

品质监控
上面重点介绍下团队是如何省心又省力地做好品质管控。

这是团队在优化品质管控前的状况,总体来说,流程分为需要、开发、公布和线上阶段。概括来说,能够分为事先、事中和预先三个阶段。

对于金融业务来说,这真的够了吗?事实上,以上流程存在肯定的隐患,以小程序的底层架构为例,置信对小程序开发相熟的同学十分理解,图中的逻辑层和渲染层是拆散的,也即逻辑层无奈拿到渲染层的后果,没有方法对渲染层进行监控。

假如在这种状况下,账单和资金展现呈现了问题,肯定会引起用户的投诉,那么,如何防备这种状况的产生?

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

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

动态金额渲染查看肯定水平上解决了咱们的问题,然而它足够平安吗?当然不是的。试想,如果关键词中的 money 拼错了,写成了 mnoey,是不是就被漏掉了?另外咱们 UI 也有可能溢出,导致账单或资金展现出错的危险。

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

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

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

这里就是方才讲到的品质管控的总体思路,是分为事先、事中和预先三个阶段进行。

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

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

第二,云开发成本非常低,具体包含低开发成本,低开发门槛和零运维老本。

第三,团队十分看重云开发的生态能力,包含接入了微信领取、COS 和 redis 各种各样的能力套件,都反对开箱即用。

用上云开发之后,大家也能够思考一下是否有「用好」云开发呢?本次分享的内容次要集中在如何用云开发晋升效力,包含继续构建、继续公布 ABTest 方面,而在品质方面,咱们也会有灰度公布、自动化测试以及 UI 的主动截屏,另外,应用云开发的过程中也使用到了微信的公有链路,能够提供弱小的平安防刷能力。无论门路如何,这些指标都是一样的,最终都是为了更好地反对咱们业务的疾速迭代以及小步快跑。

心愿大家都能基于云开发这个研发平台,多思考,多尝试,站在云开发的“肩膀”去做出更多实用于本身业务的改进。

产品介绍

云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为开发者提供高可用、主动弹性扩缩的后端云服务,蕴含计算、存储、托管等 serverless 化能力,可用于云端一体化开发多种端利用(小程序,公众号,Web 利用,Flutter 客户端等),帮忙开发者对立构建和治理后端服务和云资源,防止了利用开发过程中繁琐的服务器搭建及运维,开发者能够专一于业务逻辑的实现,开发门槛更低,效率更高。
开明云开发:https://console.cloud.tencent.com/tcb?tdl_anchor=techsite
产品文档:https://cloud.tencent.com/product/tcb?from=12763
技术文档:https://cloudbase.net?from=10004
技术交换加 Q 群:601134960
最新资讯关注微信公众号【腾讯云云开发】

退出移动版