腾讯云小程序解决方案:朱展分享小程序开发经验与增长趋势

2024-11-18
来源:网络整理

作者

朱展,腾讯云高级工程师,拥有多年后端开发经验。目前负责腾讯云小程序解决方案的演进、规划和开发。

大家下午好,今天给大家分享的主题是腾讯云小程序解决方案。首先,让我自我介绍一下。我叫朱瞻。我来自腾讯云。我目前负责腾讯云小程序解决方案,从事设计和开发。

在开始之前,先进行现场调查。有多少人有开发小程序的经验?请举手!谢谢!比我想象的多一点。有多少人用过小程序?相信大家都用过。

为什么说大家都用过微信小程序呢? 2017年3月至2017年11月增长趋势较为稳定,体量达百亿。 2017年12月出现大幅增长,那个点是小游戏的发布,也就是该游戏成为全民游戏的时候。 ,大家都在想办法提高排名。这个热点过去后,其日活跃度并没有出现断崖式下降,而是维持在很高的水平。现在的日常活动大概就是这样。这就是我们今天沙龙的背景。

小程序用户规模

小程序的结构

在讲我们微信小程序解决方案之前,我还是想讲一下小程序本身的架构。我们通常有两种移动开发模型。第一个是Web应用,它是原生应用,有两种混合开发模式。图案具有非常鲜明的特征。例如,Web应用程序不需要安装、易于共享、传播性好。原生应用一般需要安装,安装包大小从几十兆到几百兆不等。这是正常的。

移动开发模型

从开发角度来看,Web应用不需要安装,而原生应用需要专业开发安装,对开发人员技能要求比较高。由于原生应用对开发者的要求比较高,可以充分利用我们终端的能力。很大的好处就是用户体验会更好;小程序结合了两种开发模式的优点。首先,它们不需要安装。一位用户进入微信并打开小程序,然后无需任何安装步骤即可离开。

小程序特色

同时,它的开发模式也是类似Web的模式。它的前端和我们的h5前端很相似,用JS开发的成本会简单很多。用户体验与本机应用程序相当,我们稍后将重点介绍。最重要的一点是,小程序是基于微信平台的。它将享受微信带来的便利,并具备跨平台开发能力。虽然我们的H5应用一般都具备跨平台的能力,但H5是基于Web标准开发的。有开发经验的同学都知道,我们的业务规范是一个漫长的过程。理想很美好,现实却很骨感。但小程序就不存在这个问题。微信本质上是一款社交软件,传播性和分享性都非常好。我们可以通过微信扫一扫的方式打开小程序,也可以通过群聊的方式分享一个小程序,比如最近很火的弹一版小程序,其实也很流行。

小程序的基本结构和用户体验

小程序原理

我们来看看小程序底层的东西以及它的用户体验。这张图是小程序的基本架构图。它的上层分为两部分。一层是视图层,另一层是线程和逻辑层。 ,这两层是在两个不同的线程中处理的,这与传统的web有本质的不同。传统网页渲染时,如果逻辑上有非常复杂的处理,往往会导致界面卡顿。小程序就不存在这个问题。如果不调用一些渲染的东西,也不会导致你界面的流畅度下降。由于它们运行在不同的线程中,因此这两层不能直接交互。它们必须通过某种方式进行交互,例如中间层。它的基本功能是连接JS运行环境和底层系统。系统能力可以实现JS和原生能力互相调用,两边两层互相通信。用户触发事件后会做出响应。如果他们想要更新界面上的某个内容,则通过调用微信的API来显示。

小程序原理

这张图是小程序渲染的介绍。在编译打包阶段,我们写小程序的时候,会写一个类似WXML的东西,其中包括WCC编译工具。当用户运行这个小程序时,它会和你通信,从逻辑层传入的数据被编译并渲染到最终的界面中。这是最简单的本地更新过程。

小程序加载

这是几个简单的小程序加载示意图。手机上加载小程序时,必须在CDN上拉取小程序包。小程序在手机架构下可能会有等待时间。当本次安装包被缓存到本地后,下次打开时会直接从缓存中读取安装包的内容。如果有新版本,小程序不会等待新版本更新才打开APP,而是直接使用上一层缓存。当您再次启动小程序时,小程序将使用新的安装包替换旧的安装包。

冷装和热装的区别

热重载是我们在小程序上线后,在系统层面实现的。运行小程序的线程在后台运行,不会被销毁。这个时间大约是5分钟。这段时间,你访问小程序的时候,是直接从后端搬到前端的,成本比较低。

预载

小程序还提供预加载功能。除了当前视图之外,您还可以在背景中看到新视图。当你切换时,初始化时间相对来说是比较消耗性能的。在小程序层面,如果想要达到更流畅的体验,就需要做一些预处理。

服务器端小程序开发者面临的问题

除了保证小程序的流畅之外,小程序还提供了一些原生组件。有过H5开发经验的人都知道,有时候在写比较长的列表和H5应用时,和一些原生应用的对比是很明显的。 H5的表格滑动时感觉很明显,尤其是在一些较旧的系统上。由于体验达不到我的要求,所以我会使用原生组件而不是Web组件。

小程序的优势

小程序为什么这么快?刚才提到了安装包缓存和分包加载。小程序解决方案的演变。小程序是客户端的一个新的创新。我猜小程序的开发者大多是Web前端或者终端开发者。他们可能在小程序的服务器端有些欠缺。

常问问题

我们总结了小程序开发者在服务器端会面临一些问题,比如要处理很多非业务逻辑。比如用户登录了,小程序中应该考虑如何保存?你们与客户的协议如何?你还需要了解服务器的应用知识,如何配置你的服务器,如何扩展你的服务器,如果我的小程序流行了怎么办?对于一些有开发经验的开发者来说这不是问题。对于更多客户端开发的同学来说,这些都是非常困难的问题,需要了解整个系统。以登录为例。下图是微信官方提供的登录流程图。这张图看起来有点复杂。如果你仔细理解它,你就会知道它是做什么的。有更好的办法吗?这张图中的一些难点就在这里。登录微信的时候,小程序启动的时候,如何去服务器端做会话协议呢?服务器端如何保存?微信哪里提供APP?还有一些东西是用户需要保存的。如果保存它们,将会导致安全问题。如果使用微信推荐的解决方案,则需要自行处理。

小程序登录流程

第二个场景是渠道服务,开发成本较高;稳定性难以保证;需要考虑各种异常情况,与业务耦合度较高。

解决方案

针对这些情况,我们推出了名为2016年的解决方案。以刚才的会话场景,我们称之为会话服务器,它封装了复杂的逻辑,兼顾了安全性和便捷性,只关注我们提供的少数几个服务。提供。只需一个接口就可以了。我们的会话服务器也支持独立性,可以方便地水平扩展。

解决方案

针对刚才提到的,提出了通道服务器。它是一个PaaS级别的应用程序,为每个开发者提供唯一的访问地址,供开发者在程序中使用,获取小程序和信用服务器,然后去业务服务器。

渠道服务

总结起来有以下几点:配合SDK无需开发,直接使用;平台提供稳定性和性能保证;自动断开和重新连接;独立的信用服务器和消息搬运工。

建筑学

这是当时提出的架构图,因为我们当时提出的,是针对企业客户的。我们更加关注安全的可扩展性,在这方面做了很多工作。我们单独提出了通道服务器。这个解决方案现在看来存在一些问题,尤其是微信的开放。当小程序开发者单独注册时,它的问题就出现了。比如架构太不专业,各个节点需要负载均衡,证书需要自己处理。服务器需要每个开发人员自己管理,代码需要自己部署。

针对缺点,我们在2017年上半年提出的解决方案是简化版的解决方案。它做了一些简化和合并,以兼顾安全性和便捷性。例如,它合并了会话服务器和业务服务器;过去,我们会让用户部署自己的服务器。现在我们这里实行托管管理。用户可以购买自己的服务器,但不需要做服务器端配置,SSL证书将自动免费部署。我们与微信进行了深度合作,将为微信开发者空间带来解决方案。

迭代

这张图是微信开发者工具的界面。右上角有腾讯云的一些功能和一些解决方案,比如上传代码到开发环境、使用启动单步调试等。

对于开发环境,我们提供免费域名,一键分配运行环境,通过一系列的绑定和关联,免费搭建小程序的基础框架。

系统支持Node.js远程调试、测试工具集成、支持设置断点、查看变量值。它的功能非常强大,用过的人都说好。

我们还通过API向小程序开发者暴露了腾讯云的一些特色和亮点,以及比较有特色的能力,通过接口完成了身份证识别功能和图像OCR识别功能。

我们以API的形式向开发者开放智能语音。只需调整一个界面即可完成语音转文字功能。

操作流程

现在介绍一下操作过程,我们使用将腾讯云账号与小程序账号进行关联,并创建多个小程序,其中有客户端代码和服务端代码。已知客户端代码和服务端代码的地址是在小程序编译时上传到云服务器的。这些是接口的功能。上传后仍然支持安装包,以及安装后重启的功能。

绑定腾讯云账号

刚才提到,要免费分配域名,在客户端配置好域名后,需要快速搭建小程序前后端。按照这个流程,整个过程大约需要10分钟。我们还提供了各种演示供大家了解如何使用腾讯云以及使用上传服务器和图片上传功能。

创建一个小程序

上传测试代码

介绍完后,我们在想,我们还能做什么?因为很多功能都是为开发者封装的,比如我们的登录、频道服务器,所以开发者需要部署自己的服务。虽然我们做了一些托管,但是你还是需要考虑服务器扩展或者负载均衡。我们正在考虑不使用我们自己的服务器登录并将其直接托管在我们的云上。难道我们不能自己写服务器的运行环境,直接放在我们的云功能上吗?这也是我们今后一段时间的研究方向。

问答

问:刚才我提到了渠道服务。如果你是企业,你的数据放在私有云上,你是否理解所有渠道服务都放在腾讯云上?

答:是的,但我们不会存储您的数据。

问:刚才有一个服务器。我可以登录吗?

A:不会,自己部署服务器有很多环境问题。

问:Node.js 和 PXP 在网上也被热炒。能否从各个方面进行比较?最后我想给大家一个建议,哪个更好?或者 Node.js 有什么陷阱吗?

A:对我来说,我对这两种语言没有偏好。我会看看开发商的偏好。但从能力上来说,我们其实在微信开发小程序中提供了js功能。这个问题没有办法直接回答你。

问:如果有两种解决方案,Node.js 和 pxp 哪一种更好?

A:Node.js 是一种比较新的技术架构,而 Pxp 则比较传统。你需要根据你的业务场景来分析。

分享