koala 送福利啦
为反馈广大读者粉丝们的大力支持,号主特地选了
8本小程序开发原理与实践 作为抽奖礼品。
具体参与方式请看 文末!文末!文末!
云开发诞生后,不仅给广大个人开发者带来了便利,也给大厂解决了许多小程序开发效率上的问题。
本文就以腾讯相册小程序为例,介绍如何在人力紧缺、用户量激增的情况下,如何利用云开发有效推进产品功能迭代。
1
用户量暴增的腾讯相册
2018年12月,腾讯相册累计用户量突破1亿,月活1200万,阿拉丁指数排行Top 30,成为小程序生态的重量级玩家。
3个月后,腾讯相册围绕“在微信分享相册照片”这一核心场景,快速优化和新增一系列社交化功能,配合适当的运营,实现累计用户量突破1亿(见图1),大大超过预期。
图1 腾讯相册用户量破亿
可是,谁曾想到,这样一个亿级体量的小程序,竟然是一个开发做出来的?他又拥有哪般“绝技”,可以一个人撑起一个用户过亿的小程序?
2
后台人力紧缺,怎么办?
第一次见到腾讯相册小程序的开发David(化名)时,他显得忧心忡忡。
“年底的目标是用户要过千万,但现在只有一位前端和一位后台开发。不仅如此,我们的后台开发还不能百分百地投入这个项目,大部分时间要抽身支援其他项目,人力非常紧缺。另外,原有后台系统有不少历史包袱,在原有架构上做新的社交化功能开发是不现实的。怎么办呢?要不试试小程序·云开发吧?只需要前端就可以把小程序搞起,正好解决我们缺后台的难题。”
于是,David作为腾讯相册前端开发团队的骨干,承担起了用小程序·云开发实现腾讯相册小程序社交化功能的重任。说起小程序·云开发,David不无感慨。
“第一次接触小程序·云开发时,觉得它的理念挺新颖的——小程序无服务开发模式。在一般的小程序开发中,有三大功能小程序开无法绕开后台的帮助,分别是数据读取、文件管理以及敏感逻辑的处理(如权限)。因此,在传统的开发模式下,在小程序端都必须发送请求到后台进行鉴权,并且处理相关的文件或者数据。即使使用Node来搭建后端服务,也需要耗费不少搭基础架构和后期运维的工作量。
“而小程序·云开发则释放了小程序开发者的手脚,赋予了开发者安全稳定地读取数据、上传文件和控制权限的能力,不需关注其他的负载、容灾、监控等,我们小程序开发者只需要专注写好业务逻辑即可,其他的事情完全不用操心了!本来我还一筹莫展,了解完小程序·云开发的产品原理以后,我心里瞬间有谱了。”
3
然而,在腾讯相册小程序通往用户破亿的道路上,困难重重。最初生成的相片分享二维码如图2所示。
图2 相片分享二维码示例
由于腾讯相册的二维码需要加的信息量过大,因此它的二维码显得密密麻麻(如图3所示)。这种密集的二维码在某些Android机型下,容易出现无法识别小程序的问题。这严重制约了腾讯相册小程序分享获客的能力。
图3 二维码需要存储大量信息
这个事情不难解决,只需后台开发把数据先存储到数据库中,然后把数据id放到分享链接上即可。这样链接便可以转化成32个字符的短链接,让二维码看起来没有那么密集了。
但由于后台开发人手不足,于是前端开发David利用小程序·云开发的数据库存储能力,通过调用db.collection('qr').add接口,快速实现了数据在数据库中的存储。具体操作如图4至图6所示。
首先创建一个数据库集合,然后将相片的分享信息都存储在该集合中。
图4 将相片分享信息存储在数据库中
如果想要加快相片读取的速度,可以给该集合添加索引。
图5 云开发数据库索引可加快数据读取
然后将分享链接转换成短链,避免链接参数过长导致小程序读取失败。
图6 将分享链接转成短链
此外,腾讯相册还借助小程序·云开发的云函数能力(如图7所示),生成辨识度更高的小程序码,用以在朋友圈传播分享,如图8所示。
图7 生成小程序码的云函数逻辑
图8 优化后的分享图片和小程序码
4
两天上线评论点赞功能
腾讯相册在微信端的核心应用场景是“在微信分享相册照片”,为了增强腾讯相册用户在微信里的互动,提升用户粘性和留存率,腾讯相册决定新增评论与点赞功能,并且把聊天评论直接在微信聊天窗口里实现。评论与点赞功能如图9所示。
图9 评论与点赞功能
这时,腾讯相册的David面临两个选择:一是按原开发模式(前台开发-后台开发-前后台联调)做这个功能,问题是开发周期长、缺后台、迭代速度慢;二是借助云开发的能力,撸起袖子自己上。
为了加快产品迭代速度,David决定采取云开发的开发方式。评论、点赞通过云开发的数据库插入和查询接口,如db.collection('comment').add,很快就实现了。
但又遇到一个棘手的问题:对于一些敏感的操作(比如删除和编辑评论、点赞),还需要用到用户的鉴权操作,而这些鉴权信息都在原有的后台。此时,云函数的路由功能便发挥作用了。
用户进行评论点赞的时候,会在小程序端发起请求调用云函数并带上openid,云函数用openid查询原有的后台服务,看看该用户是否有权限进行操作,如果有权限,则把评论和点赞的数据都写入云开发的数据库中,如图10所示。
图10 评论点赞逻辑
就这样,借助小程序·云开发的能力,David仅用 2 天时间就完成了在传统开发模式下需要 1 周多工作量的开发工作(后台1周:微信登录态校验+业务逻辑server开发;前后台联调1天)。
对于开发人员来讲,云开发带来了极大的便利,一个开发就能撑起一个用户过亿的小程序。
本文节选自《小程序开发原理与实战》
抽奖活动规则
奖品设置:
开奖时间:6 月 19 日 中午 12:00
关注获取抽奖二维码(4本实体书)
点击下方名片,关注【程序员成长指北】公众号后,在后台回复 小程序 获取抽奖二维码,可以参与4本实体书。
在看抽奖(四本实体书+8个小红包)
大奖:随机抽取「4位」在看同学各送出一本
小程序开发原理与实战
参与奖:随机抽取「8位」在看各送出2元幸运红包。
点在看的小伙伴记得添加我微信,不然我看不到哪些小伙伴点在看了。
在看抽奖方法:随机(parseInt(Math.random()*在看人数+1),10))抽4名送书和8名送现金红包,中奖者我会私聊你的。
在看” 支持