查看原文
其他

云开发在微信读书中的应用

微信读书小程序 腾讯云云开发CloudBase 2021-05-15


导语

今天是“世界读书日”。通过读书,我们不断拓展自己的认知,锤炼自己的思想。随着时代发展与技术进步,我们的阅读习惯发生了很大的改变,我们渐渐习惯了不同的方式,而其中微信读书给电子书的受众提供了很大帮助。今天我们就来聊聊云开发在微信读书中是怎样运用的。

2019年10月19日,在首届「小程序 ·云开发」技术峰会上,微信读书小程序团队分享了云开发在其业务上的应用,详细介绍了小程序·云开发如何使开发更加敏捷,开发效率提升的基础上,为开发团队带来组织分工的优化。本文是分享内容的详细介绍。


2019年10月19日,由腾讯云与微信小程序团队联合举办的“小程序·云开发”技术峰会在北京召开。会上,微信读书小程序团队的姚海波带来了题为《云开发模式下的敏捷开发和组织分工》的精彩分享。



▌微信读书小程序简介

微信读书小程序,继承了App最核心的阅读功能,同时还作为了App对外分享和运营的最重要渠道,上线10个月,获客数千万,日均PV过千万。而且,团队基于“小程序·云开发”带来的效能提升,助力微信读书小程序上线10个月累计发布349次版本,开发效率分别是对应的APP和H5的4倍与2倍。


▌微信读书小程序使用了云开发的哪些能力?

在借助云开发进行微信读书小程序的具体开发时,我们主要使用了云开发的云函数、云存储和云数据库。

云函数是该小程序应用最多的一项,可以将其理解为在云端运行的代码,并拥有微信的私有鉴权,从而无需担心安全性问题,而且其还通过 L5 和 HTTP 的协议打通了腾讯内网,也就是说,相当于我们调用云函数,而云函数调用微信读书的后台,使得在内网即可跑通这一系列调用流程,节约成本。

云存储的应用方面,主要使用 CDN 进行内容分发等,而云数据库,也就是在云端的数据库,作为数据存储的工具。


▌为什么选择云开发?

那么,为什么选择云开发来进行微信读书小程序的开发呢?主要有两个原因。一是团队在小程序开发方面经验不足,积累的Node框架也需更新,因此导致上线流程较为繁琐,速度也不太可观。二是团队人力不足,这也是比较客观也比较难解决的一个问题。

而云开发恰好完美解决了这两个核心痛点:

首先,云开发上手成本特别低,利于快速并入开发流程并投入使用中。其次,云开发与小程序结合得非常完美,原生性极强,便于小程序的快捷开发。

第三,云开发团队的服务特别精准与到位,问题响应特别快,尤其是我们在接入后反馈了很多个性化的问题,云开发团队也都及时和准确地为我们解决,因此使用体验很棒。

最后,也是非常重要的一点是云开发的服务特别稳定,这也是我们后面坚定不移选择云开发的原因之一。因为一项业务的快速发展离不开稳定的服务,倘若优质内容缺少持续稳定的服务支持,也很难成为真正的爆款,云开发就很好地规避了这一风险。


除此之外,我们还考虑了性价比问题,经过评估发现,使用云开发要比自己搭建 Node 服务器的性价比高很多。

由此,我们综合多方面考虑毫不犹豫地选择了云开发作为微信读书小程序的开发支持。


▌云开发的具体应用——以“读书小队”为例

在了解云开发的能力并选择使用后,云开发究竟应用在微信读书小程序的哪些场景中呢?其实该小程序的绝大部分功能都应用了云开发,这里就以三个较为典型的功能和场景为例介绍。一个是“一答到底”活动(通过闯关答题形式科普知识、解锁奖励的活动);另一个是“翻一翻”活动,这也是我们曾经做的一个爆款活动,当时因为受限于服务的问题没能发展下去,但是应用云开发我们成功将其迁移到小程序端。



还有就是“读书小队”功能,这是一项可与朋友组队通过阅读、互动等方式获取团队积分获取奖励的活动,在技术实现方面,此项功能会调用数据到后台,其独立地结合了云函数、云存储和云数据库,基本上不需要后端后台的部署。而云函数+云数据库的模式更适用于单纯独立的业务,像读书小队和答题游戏这种,后续我们会逐渐地加入原有的自建NODE的模式,用云函数和云开发来承载。使用云开发的逻辑如下图,从小程序端获取的数据通过云函数、云存储等功能传输到Server后台,并生成业务发展数据的报表,相当于一套从后台到前端的完整服务。



▌云开发带来的优化与变革

云开发为我们的业务带来了什么样的优化与变革呢?第一个,也是最直观的,那就是功能上线和迭代更快了。以往我们上线需要经历提单、归度、测试等一系列漫长的流程,而使用云开发完成上线只需 IDE(集成开发环境) 里完成面上传即可,大大的节省了时间成本。

第二是云开发的方便性。在以往的开发中,由于业务集成在一个IDE里面,而这时小程序、Node、后台往往各有一个项目,这就需要三个项目的负责人一起进行配合调试,沟通成本较高,而使用云开发后我们现在完全可以在一个IDE里面做完所有的事情就可以了。

第三个是服务的稳定性大幅增强。自从用了云开发之后,即使在运营活动使得数据大幅变动的情况下,也未出现宕机的情况。

最后,云开发大大节省了人力成本并优化了分工。云开发带来的不仅仅是业务上的优化,更是解放了开发人员的双手。使用云开发后,以往需要一名前端、一名 Node 以及一名运维同学负责的工作,现在交由一名开发人员即可完成。

在另一方面,在使用云开发后,开发者接触的技术面变广了,视野也更开阔,增加了很多学习和提升自身技术水平的机会,由此可以在一定程度上避免开发者停滞在舒适圈,例如,前端开发者可以接触到除了调样式、改界面之外的数据分析、服务的资源利用率等全栈层面的问题。



 更多精彩

扫描二维码了解更多



      点击在看让更多人发现精彩



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存