1个开发如何撑起一个过亿用户的小程序

qcloudcommunity · · 1798 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

> 本文由云+社区发表 2018年12月,腾讯相册累计用户量突破`1亿`,月活1200万,阿拉丁指数排行 `Top 30`,已经成为小程序生态的重量级玩家。 三个多月来,腾讯相册围绕【在微信分享相册照片】这一核心场景,快速优化和新增一系列社交化功能,配合适当的运营,实现累计用户量突破`1亿`,大大超过预期。 可是,谁曾想到,这样一个亿级体量的小程序,竟然是一个开发做出来的?他又是有哪般“绝技”,可以一个人撑起一个用户过亿的小程序? ## 后台人力紧缺,怎么办? 当我第一次见到腾讯相册小程序的开发David(化名)时,他显得忧心忡忡。 “年底的目标是要过千万的用户,但现在只有几位前端和后台开发。不仅如此,我们的后台开发还不是百分百能够投入到这个项目,大部分时间要抽身支援其它项目,人力非常紧缺。此外,原有后台系统有不少历史包袱,在原有架构上做新的社交化功能开发是不现实的。怎么办? “要不试试'小程序·云开发'吧,只需要前端就可以把小程序搞起,正好解决我们缺后台的难题。” 于是,David作为腾讯相册前端开发团队的骨干,担当起用小程序·云开发实现腾讯相册小程序社交化功能的重任。 “第一次接触到’小程序·云开发‘时,觉得这个东西(小程序·云开发)理念挺新颖的———小程序无服务开发模式。在一般的小程序开发中,有三大功能小程序开无法绕开后台的帮助,它门分别是**数据读取**、**文件管理**以及**敏感逻辑的处理(如权限)**。因此,传统的开发模式,在小程序端都必须发送请求到后台进行鉴权,并且处理相关的文件或者数据。即使使用 Node 来搭建后端服务,也需要耗费不少的搭基础架构、后期运维的工作量。” ![img](https://ask.qcloudimg.com/draft/1011618/l13hi6bb32.png?imageView2/2/w/1620) “而小程序·云开发则释放了小程序开发者的手脚,赋予了开发者安全、稳定读取数据、上传文件和控制权限的能力,其它的负载、容灾、监控等,我们小程序开发者只需要关注业务逻辑,专注写好业务逻辑即可,其他的事情完全可以不用操心了!本来我还一筹莫展,了解完’小程序·云开发‘的产品原理以后,我瞬间心里有谱了。” ## 二维码扫不出来了 ![img](https://ask.qcloudimg.com/draft/1011618/mtcolmtuj4.png?imageView2/2/w/1620) 道路总是不平坦的 ,在腾讯相册小程序通往用户破亿的道路上,困难重重。 由于腾讯相册的二维码需要带上的信息量过大,因此它的二维码显得密密麻麻。这种密集的二维码在某些Android机型下,容易出现无法识别小程序的问题。 这严重制约了腾讯相册小程序分享获客的能力。 ![img](https://ask.qcloudimg.com/draft/1011618/vgihger53p.png?imageView2/2/w/1620)(需要存储name, ownerid, page等大量信息) 这个事情的解决并不难,只需后台开发把数据先存储到数据库中,然后把数据id放到分享链接上,这样,链接便可以转化成32个字符的短链接,让二维码看起来没有那么密集了。 但由于后台人力不足,于是前端开发David利用小程序· 云开发的数据库存储能力,通过调用*db.collection('qr').add*接口,快速实现数据在数据库中的存储。 ![img](https://ask.qcloudimg.com/draft/1011618/41jehjwc0n.png?imageView2/2/w/1620)(云开发数据库,格式类似MongoDB) ![img](https://ask.qcloudimg.com/draft/1011618/2162h1bcvv.png?imageView2/2/w/1620)(云开发数据库索引,可加快数据读取) ![img](https://ask.qcloudimg.com/draft/1011618/hx5tzvrkca.png?imageView2/2/w/1620) 此外,腾讯相册还借住小程序·云开发的云函数能力,生成辨识度更高的小程序码([小程序码文档](https://developers.weixin.qq.com/miniprogram/dev/api/qrcode.html)),用以在朋友圈里传播分享。 ![img](https://ask.qcloudimg.com/draft/1011618/fgfjp2nw48.png?imageView2/2/w/1620)(生成小程序码的云函数逻辑) ![img](https://ask.qcloudimg.com/draft/1011618/0ul3mjha12.jpg?imageView2/2/w/1620)(优化后的分享图片和小程序码) ## 2天上线评论点赞功能 ![img](https://ask.qcloudimg.com/draft/1011618/n613q0d9v8.png?imageView2/2/w/1620)(评论与点赞功能) 腾讯相册在微信端的核心应用场景是“在微信做分享相册照片”,为了增强腾讯相册用户在微信里的互动,提升用户粘性和留存,腾讯相册决定新增评论与点赞功能,并且把聊天评论就直接在微信聊天窗口里面实现。 在这里,腾讯相册的David面临了两个选择,一是按原开发模式(前台开发-后台开发-前后台联调)做这个功能,面临的问题便是开发周期长、缺后台、迭代速度慢;另一个就是借助云开发的能力,撸起袖子自己上。 为了加快产品迭代速度,David决定采取云开发的开发方式。评论、点赞通过云开发的数据库插入和查询接口,如*db.collection('comment').add*,很快就实现了。 但遇到棘手的问题是,对于一些敏感的操作比如删除和编辑评论、点赞这些敏感操作,还需要到用户的鉴权操作,而这些鉴权信息,都在原有的后台。此时,**云函数的路由**功能便发挥出作用了。 ![img](https://ask.qcloudimg.com/draft/1011618/4jaqb3t35h.png?imageView2/2/w/1620)(评论点赞逻辑) 用户进行评论点赞的时候,会在小程序端发起请求调用云函数并带上 `openid`,云函数用 `openid` 查询原有的后台服务看看该用户是否有权限进行操作,如果用户具有权限,则把评论和点赞的数据都写入云开发的数据库中。 就这样,借住小程序·云开发的能力,腾讯相册仅用2天时间,完成了在传统开发模式下需要1周多工作量的开发工作。 | | 原有开发模式 | 云开发全栈开发 | | ------ | --------------------------------------------------------- | ----------------- | | 工作量 | 后台1周(微信登录态校验+业务逻辑server开发)+ 前后台联调1天 | 1 - 2天,无需联调 | **此文已由作者授权腾讯云+社区发布** ***

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1798 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传