云端:腾讯云微信小程序敏捷开发最佳实践(组图)

2022-08-24
来源:网络整理

微信小程序是一个门槛低、流量大、竞争公平的优质营销平台。这些特点满足了商家对产品营销的基本需求。已经开业,2018年也将迎来最好的红利期。那么,对于开发者来说,如何开发一款既敏捷又低成本的流行小程序呢?

3月31日,云+社区技术沙龙举行。邀请腾讯云和和家推科技的五位技术专家,从小程序开发云解决方案、前端音视频功能、小程序架构设计和开发工具。等不同维度,一站式分享和分析小程序敏捷开发的最佳实践。本文整理了精彩的干货内容。有兴趣的读者可以点击阅读原文下载完整版PDF。

1 云:腾讯云微信小程序解决方案

自微信小程序发布以来,微信平台上出现了许多现象级的小程序和小游戏。这些热门小程序的背后,离不开微信小程序的云解决方案。此类小游戏的云部署、网络架构和安全体系提供了强大的技术支持。

腾讯云微信小程序解决方案负责人黄荣奎从小程序核心架构、开发者工具解决方案、微信小程序云实践等方面详细讲解了小程序开发中的常见问题。小程序快速开发部署的实践为开发者提供了一些小程序敏捷开发的思路和方法。

小程序核心架构解析小程序实现原理

小程序是一种新的开放能力,开发者可以快速开发出小程序。小程序可以在微信内轻松获取和传播,同时拥有出色的用户体验。那么,小程序是如何实现的呢?

首先我们来看看小程序实现的核心架构,如下图所示。第一层是小程序的渲染层,即主要负责;第二层是逻辑层,主要通过业务逻辑实现登录功能和支付功能。 第三层可以理解为微信的原生能力。微信为开发者提供了网络、存储、登录、组件、硬件等丰富的原生客户端和能力。存储包括文件读写、音视频读写等,组件是开发常用的组件,包括音视频录制,还有摄像头,还有拍照、扫码等等。

在这些原生能力、渲染层和逻辑层之间,通过事件和返回数据传递和调用消息。当用户对界面进行操作时,会触发相关事件,并传递到,再传递到业务逻辑层。 微信小程序的事件处理部分包括四个部分:

开发者工具程序简介

在配置小程序环境的过程中,开发者需要自己准备服务器,因此需要花费大量精力在服务器运维和周边环境的部署上,而不能专注于小程序的业务开发小程序。为了让开发者从繁琐的配置中解放出来,腾讯云发布了腾讯云微信小程序解决方案,帮助开发者更方便地部署和调试服务器。

由于企业级和个人开发者小程序的需求不同,为满足多方需求,腾讯云基于企业级IaaS能力为个人开发者定制了快速、便捷、和低门槛。 .

更加注重为个人开发者提供快速、便捷、低门槛的解决方案。腾讯云结合原有的业务服务器和会话服务器,提供开发环境和生产环境。开发环境与生产环境配置相同,用于快速开发和测试。生产环境用于部署提供在线服务的代码。此外,腾讯云还与微信小程序团队合作,整合到微信开发者工具中。

小程序云实践

除了支持IaaS的解决方案外,腾讯云还提供快速通讯接口、登录、语音识别等多种能力,满足用户在小程序开发过程中的各种功能需求。基于这些基本功能,腾讯云开发了两个解决方案,聊天室和图像识别。

聊天室主要结合腾讯云的服务,利用通道通信技术实现小程序与服务器之间的信息交互和传递。比如小程序在登录时会从服务器获取地址。腾讯云的PaaS级通道通信技术使得当前用户可以直接连接到当时的服务器,而不是连接到业务服务器。

这样做的好处是开发者不需要过多关注 的实现,避免了 带来的性能消耗。

同时,腾讯云提供基于万象优图技术的图像识别API,可用于身份证识别、生物特征验证等领域。由于篇幅有限,本文不再详细介绍。有兴趣的同学可以进入腾讯云官网了解详情。

2 前端:如何在小程序中添加音视频功能

音视频能力一直是小程序的短板。 2017年Q4,腾讯视频云终端团队与微信团队通力合作,以SDK的形式将腾讯视频云的技术积累带到了微信版。从而为小程序增加了直播和实时音视频的能力。腾讯视频云终端技术负责人常青从原理分析、技术演进、快速入门等方面详细介绍了如何为小程序添加音视频功能。

原理分析

微信小程序用什么开发_微信小程序怎么开发自己的小程序_小程序的开发文件系统架构

以下是微信小程序内嵌的音视频组件。上层是小程序代码层,中间是小程序的基础库,底层是音视频组件。这里的SDK由两部分组成:一是音视频的上游,也是音视频的下游。

上游解决方案主要解决音视频采集、处理、编码和网络的几个问题。实现过程是先采集本地图片和声音,然后进行预处理,比如图片美化、音频降噪等,然后进行编码。这部分主要是尝试对数据进行压缩,最后通过网络模块上传到云端。

下行对应上行,即原本在云端的音视频数据通过网络传输、解码等操作进行播放。在音视频下行过程中,视频或声音播放的速度直接取决于网络的速度。为了保证播放效果,解码前需要对数据进行缓冲,这样即使网络环境较差,也能在一定程度上保证流畅播放。

技术演进

微信小程序刚开始嵌入音视频能力的时候,很多技术点都无法实现。腾讯视频云团队和微信团队通力合作,经过半年的打磨和更新迭代,逐渐加入了一系列小程序。在线音频和视频功能。

整个技术演进路线走下来了,从简单的直播到DNS再到双向通话再到多人通信,基本上所有基于小程序的音视频场景都可以覆盖。

快速开始

腾讯云在这方面提供了完整的云解决方案。用户可以根据自己的需要直接登录腾讯云后台,腾讯云服务的空桶可以直接下载部署。整个操作步骤如下:

3 底层:微信小游戏架构设计

自小游戏发布以来,微信平台上出现了许多现象级的游戏,包括《跳跃》和《保卫萝卜》。通常,普通人会将小游戏归为小程序的一个子类。但在技术实现上,由于游戏需要多用户的深度参与,微信小游戏和小程序的底层架构和实现原理大相径庭。因此,小游戏最大的特点就是去中心化的分发和好友关系链的传播。 .

微信小游戏的两大特点也对架构设计提出了特殊要求:一是全区全服的需求。为了充分利用微信的社交网络,游戏往往需要全区全服(单人)。其次是线上扩缩容的需求,因为任何游戏都可能成为爆款,微信上可能会出现几何级增长,流量的变化无法预测,所以线上扩缩容成为了小游戏架构的刚需。

由于系统架构设计存在性能瓶颈,某开发者小游戏上线后的短时间内,在线用户数从几万增加到了200万左右。缓存使用单实例,数据库也是单库)。扩容的时候出了大问题。通过重构程序,使用集群版本的数据库,问题终于解决了。但由于耽误了很多时间,造成了损失,在线用户数量大幅下降。因此,我希望小游戏的架构足够轻,足够“小”,但在架构设计之前还是需要考虑关键问题。

计算机层架构设计无状态分层架构

我们先来看下图(左)中的无状态分层架构。架构图如下图所示。简单来说就是节点按照服务调用关系进行分层,层与层之间使用LB(负载均衡)。对于连接,LB下的节点可以灵活伸缩。这种架构其实是一种常用的web架构,对于一般的休闲游戏来说也足够了。

右图是腾讯云无状态分层架构的最佳实践。客户端使用CLB扩展对后台服务的均衡访问,并使用BGP Anti-DDoS保护游戏免受DDoS攻击。当攻击流量发生时,Anti-DDoS 服务可以清理流量,然后将其注入系统。腾讯云使用不同的弹性伸缩组承载不同的服务,服务之间的调用通过内网负载均衡连接,方便动态扩缩容。这使用了一些腾讯云服务:

第二个是腾讯云弹性伸缩服务AS。弹性伸缩服务可以在不同时间伸缩集群中的节点数量。支持的策略包括定时伸缩策略、基于监控告警的策略、手动伸缩策略等。扩展速度方面,腾讯云创建 1000 台云主机平均需要 63 秒。借助弹性伸缩服务和腾讯云的基础能力,可以非常方便地快速、动态地扩展和收缩服务。

三是BGP高防服务。目前安全形势不容乐观,攻击流量一应俱全。必要时可以使用BGP高防服务来保护小游戏。其特点是平台具有T级保护带宽。提供基于AI的精准识别算法和业界最完善的BGP网络,在提供保障的同时,最大限度地提高网络覆盖质量。

无状态分层架构的优点是可靠性高,单节点故障不影响整体可用性,伸缩灵活,但是对于游戏来说,有两个问题:1)节点无状态需要去存储层为每个请求读写数据,会导致存储层压力大,硬件成本高,不适合实时性要求高的场景; 2)同层节点不能直接发送请求,下层节点不能向上发送请求。对于某些游戏场景,需要通过共享数据和轮询来解决,给开发者带来不便,同时也会存在实时性问题和性能损失。

星型架构

为了解决以上问题,小游戏团队采用星型结构,如下图:

不同节点之间通过 进行通信,这是一个实现节点间消息转发的服务器。例如,如果节点A中的对象要向节点B中的对象发送团队邀请,则可以将消息发送到,然后转发到节点B的客户端处理,然后发送到。在这种结构中,所有节点都是点对点的关系,任意两个节点都可以通过 .但是这个图有一个明显的问题:它是单点,存在容错性和可扩展性问题。对于容错问题,可以通过引入主备机制来解决。借助 ,可以实现主备切换。当主节点不可用时,会自动切换到备用节点。

另外,扩展性问题可以通过将多个星型结构连接在一起来解决,如下图:

在set 1的节点A和set 2的节点B上,当1向2发送团队邀请时,可以将消息转发给节点B,在节点B进行必要的判断处理,最后通知客户端小程序的开发文件系统架构,需要保存所有对象的路由数据,类似于下表:

到这里,做了以下事情:

用途广泛,可作为通用游戏中间件使用。

基于这种架构,系统的扩展可以分两个层次进行。一个是集合内的扩展。当大厅或战斗节点不够用时,可以动态添加。新节点将自行注册并加入系统。当一个集合的承载能力达到上限时,可以通过复制该集合来继续扩展。假设set0和set1已经存在,当需要添加set2时,整个流程就是先部署set2。建立与它的连接。连接建立后,会获取或获取全部的对象路由信息,并将上面初始化后生成的对象路由信息发送给and。

至此,整个系统的通信拓扑已经建立,set2可以对外开放了。登录到set2的大厅节点后,会将自己的对象路由信息发送到和同步到和。简单来说就是通过复制节点和复制集来扩展,反之亦然。

下图是在腾讯云上扩展星型结构的一种做法。对于实时性要求高的游戏,比如坦克大战等游戏,可以多点部署,让玩家可以访问附近的玩家,华南玩家可以访问微信VPC,华东玩家可以访问微信专有网络。 set1和set2分别部署在两个VPC中,通过跨域对等连接,可以建立内网连接,实现全域全服务器。

存储层设计

小程序设计的目标是构建一个大的存储层,以满足全服务器和全区域动态扩展的问题。最重要的问题是数据库的横向扩展。有三种方法可以自己做:第一种是基于增量间隔分片。它的优点是可以实现动态在线扩容,但存在性能热点,因为新分片始终是访问量最大的分片,老分片会随着玩家的流失而出现闲置性能;第二种方法是根据ID的hash值将数据平均分配到不同的,不存在性能热点,但是在系统扩容的时候,往往需要重新定位数据,实现快速自动扩容比较困难第三种方法是两者结合,可以同时解决两个问题,但需要增加中间数据路由层,有研发负担和性能损失。

为了简化存储层的设计,腾讯云的分布式数据库产品DCDB被广泛使用。复杂性完全封装在代理层中。它对业务层几乎是透明的。

DCDB 支持新分片的扩展和现有分片的扩展。在扩容过程中,系统会自动重新定位数据,并切换相应的流量。它可能不知道在线服务。开发者只需要在控制台上进行简单的操作。操作可实现自动扩容。

另一个简化存储层设计的产品是腾讯的,它是腾讯开发的专为游戏设计的分布式数据库。它具有三个主要特点:

目前已在腾讯内部广泛使用,包括王者荣耀、火影忍者、CF、PUBG 等数百款游戏,均作为主库使用。

4个工具:引擎一键发布微信小游戏

该引擎是由 .不仅支持AS3、TS、JS开发三种语言的游戏,还可以发布为APP游戏、微信小游戏、QQ玩游戏。开发者可以直接在工具中快速开发和提交产品。合伙人李明详细分享了如何使用引擎和工具一键发布微信小游戏。

微信小程序用什么开发_微信小程序怎么开发自己的小程序_小程序的开发文件系统架构

小游戏制作前的准备工作

在发布微信小游戏之前,需要做一些准备工作,包括环境配置、工具下载、账号创建等。

用H5引擎开发微信小游戏的过程

微信小游戏H5引擎开发主要包括创作、开发、发布、真机调试、上线发布等步骤。首先需要在IDE中创建一个小游戏样例工程,然后使用IDE开发小游戏。开发完成后可以直接在IDE中发布小游戏项目。小游戏项目发布后,还需要在微信开发者工具中导入IDE发布的小游戏项目,然后使用微信开发者工具中的预览和上传功能调试上线。

在 IDE 中创建一个小型游戏项目。这个比较简单。打开New 按钮,可以看到创建界面。需要注意的是,创建时一定要选择微信小游戏2D示例或者微信小游戏3D示例,否则微信开发者工具的工程文件不会创建,工程文件也不会创建。小游戏适配库将被导入。

在 IDE 中开发小游戏。小游戏开发过程中有一个非常重要的关注点,就是4M本地包。这个本地包主要用来存放JS文件和最基本的预加载资源(整个项目的JS都必须放在本地包中)。本地包超过4M后,可以远程动态加载资源。通过引擎适配库的本地包白名单功能,可以轻松管理本地资源和远程资源的加载。此外,在小游戏的缓存管理中,引擎适配库提供了自动缓存管理和手动缓存管理。常用资源小于50M的小游戏推荐使用自动缓存管理,大于50M的常用资源需要手动管理缓存。

在 IDE 中发布小型游戏项目。项目开发完成后,可以点击发布按钮,直接将H5项目一键发布为小游戏项目,因为微信小游戏和QQ小游戏都提供标准的渲染接口。与引擎API对接,确保开发者可以同时发布多个平台。

在微信开发工具中导入项目。打开微信开发者工具,创建小游戏项目,创建时的目录可以直接指向已发布的小游戏项目。

微信小游戏调试。微信小游戏的调试包括常规开发调试和真机调试两部分。常规的开发和调试只需要在IDE中调试或在开发中进行开发(也是基于小游戏工具)。真机调试要求本地包必须小于4M。微信的真机调试环境比较简单,调试主要靠日志输出。

小游戏在线发布。微信小游戏调试完成后,如果您打算上线,可以直接在微信开发者工具中点击上传,将小游戏版本提交到微信开发者平台,在平台提交相关信息,并审核通过后上线。

以上是引擎一键发布小游戏的完整流程。据悉,还将与腾讯云合作,优化小游戏的发布和开发流程。未来将集成微信小游戏动态加载包一键上传至腾讯云,避免手动拆分目录、打开服务器传输工具等繁琐流程。用户还可以在腾讯云中关联绑定账号,通过IDE快速购买腾讯云服务器。

5 实践:如何利用小程序技术解决企业销售问题

小程序时代,你不仅要懂得开发,还要善于操作。一个多功能、高性能的小程序,需要配合完整的操作方法,才能发挥最大的价值。加推科技联合创始人刘毅分享了企业营销典型场景痛点分析,以及加推如何通过小程序解决企业销售问题。

企业营销痛点分析

在解释企业营销的痛点之前,刘毅分析了企业营销的三个刚性需求,即收入、销售和销售管理。其中,最后两点直接影响企业营收。那么,企业应该如何做销售和销售管理呢?毛呢布?下图总结了中国8000万销售人员的痛点。大多数公司将面临以下四类痛点:

添加微信智能营销解决方案

无论是微信公众号、微商城、企业官网还是小程序,在企业初期,没有串流和运营,获客率普遍不高;即使获取到的销售线索,由于缺乏可视化,借助智能筛选工具,营销人员也只能进行一对一的联系人跟踪,无法系统化管理客户,导致工作效率低下。

那么,有没有通用的方法和工具,可以打通企业、微信、小程序等不同渠道,形成有效的推广、运营、销售闭环?基于此理念,家推结合微信小程序,通过SaaS小程序接入,开发出全球首个微信智能销售系统。通过AI名片、AI雷达等解决方案,实现微信小程序10亿用户触达和转化。

总的来说,微信智能销售系统主要是先深度打通微信原生消息通道,打通微信数据层,实时捕捉客户行为轨迹并生成用户画像,再通过小程序技术重构个人名片打造企业版微信朋友圈利用AI核心算法分析用户行为数据,寻找业务合作突破口,重构客户通讯录,将微信流量导入公司官网或企业系统。 BOSS平台可以实时掌控员工客户数据,实现流量的永久资源利用。

分享