简介 | 9月21日,由云+社区(腾讯云官方开发者社区)主办的科技沙龙“小程序云开发”微信站成功举办。前段时间随着小程序和云开发能力的进一步提升,在简化开发者操作的同时,以业务场景为切入点,为开发者提供了构建功能完整的小程序的能力,无需技术底层架构能力。借助云开发能力,进一步优化小程序开发体验。
小程序和云开发技术应用的架构演进
小程序云开发,作为中国的最佳实践之一,云开发真正带出了.腾讯云高级工程师李开元先生从技术角度揭示了云开发功能的实现,从免认证/实时推送/一键的能力介绍了云开发的设计方案部署/数据交换。
腾讯云高级工程师李开元
在分享的开始,李开元老师抛出了一个问题:一般来说,如果我们要开发一个有后端能力的小程序,我们前期的准备过程是怎样的?答案是注册小程序账号-注册公有云账号-购买服务器和域名-申请SSL证书-登录服务器购买软件配置-域名备案-研发阶段。
可见,仅仅为了开发一个轻量级的小程序,前期就需要这么复杂的准备过程。感觉整个流程都down了,好像小程序的业务逻辑的实现变成了最简单的事情。而这还没有结束,我们还需要考虑小程序的高可用、高性能、安全、数据库备份、容灾等问题。
因此,作为开发者,我们有必要关注更重要的事情,即产品功能业务逻辑的实现层面。
传统云服务模式与云开发模式对比
在传统的开发模式下,需要多关注文件存储、备份、容灾等,而在云开发模式下,只需要关注数据库、文件存储、云功能与业务逻辑有关。现阶段小程序云开发提供数据库、文件存储、云功能等功能。数据库类似于滴滴,提供整体格式的存储解决方案。文件存储是通用的文件对象存储,自带CDN网络加速。能力,而云函数提供远程代码和快速调用能力。
在整体架构实现逻辑上,小程序云开发分为云调用、数据库实时推送、增值能力、网络互通四个层次。
1.云端通话
小程序生态定制,通过云功能简化认证,腾讯云和微信都具备开放认证功能,实现认证工作自动化。
过去没有云开发。如果要调用微信后台的API获取数据,需要先购买服务器,在服务器上开发微信中间件获取,用于访问微信后台。云开发可以省略上述步骤,因为云开发提供了在云功能中实现上述逻辑的能力。同样,云开发在从微信服务器接收数据时,不需要配置服务器地址等,而是可以直接在云开发ID中配置应用接收的云功能,然后从微信服务器接收消息。
从获取信息到接收信息,相当于整个开发过程。开发者不需要过多关注认证相关的事情,只需要关注自己的业务逻辑即可。开发者无需实现认证,更安全。刚才提到的免认证方案,为开发者简化了很多工作。
2.数据库实时推送
长连接服务,简化实时交互
实时推送数据库功能是小程序云开发近期新上线的功能。可以在聊天、棋牌游戏、订单状态同步等诸多长连接实时交互场景下优化升级开发体验。可以说,实时推送数据库的能力是对小程序的功能改进非常重要。
实时数据库推送的多层架构
整个数据推送系统是一个分层的多层架构。这里主要说明监控推送层的设计理念。监控推送层在设计之初主要考虑三个原则,即高可靠、高性能、高可用。 (1)高可靠性,放在第一优先级,带单点执行,自增ID方案,支持3分钟断线,二级功能。(2)高性能,主要分分为三,一是事件的合并推送,如果网络不好,可以将多个事件合并在一起,有效提高推送效率;二是自动索引算法,可以从O( n) to O(1); 最后是并发流水线,每一步都由不同的线程处理,可以保证利用多重组合的能力,最终的性能可以成倍的提升。(3)高可用),分为热备份容灾和无损变更,热备份容灾可以保证虽然有额外的节点可以实时处理替换;无损变更可以保证服务不会有任何请求时间改变过程。被打断了。
3.增值能力
免费后台开发,一键发布云端功能

整合腾讯云的图像识别、音视频、短信等基础产品能力,通过一键模块化部署到云端功能,无需后台开发,只需要调用这些功能即可实现未来的功能。
4网互联
整合现有架构,降低访问云端的开发成本
网络互联方案
当然,每个开发者都是独立的个体,有着不同的历史包袱和熟悉的开发模式。因此,通过网络互通的解决方案,将现有架构与云开发融合在一起。接入云开发时无需放弃原有的开发模式,通过云功能即可接入云上的其他能力。具备支持区域内/异内网访问、使用IPIP协议、隔离不同租户网络三大能力。
基于实时数据推送能力的云开发应用实践
微信小程序中有一个重要的分支,就是小游戏。在小游戏的开发过程中,实时数据推送能力对于小游戏服务器与游戏终端的数据交互非常重要。白鹭科技高级产品经理张宇先生讲解如何基于白鹭引擎开发和实时数据推送能力更好地服务小程序。
白鹭引擎高级产品经理张宇
1.实时数据推送能力
玩游戏必须涉及服务器和游戏客户端之间的数据交互。交互方式一般分为短连接和长连接。
短连接和长连接
如上图所示,左边的AJAX轮询方式是短连接最常用的方式之一。这是一个回合制的问答模式。在这种模式下,服务器不能主动向游戏推送消息,服务器必须先发送请求才能返回消息。一般情况下,欢乐农场等一些对实时数据要求不高的游戏,都会采用这种短连接方式。
另一种是长连接,比如 ,是H5中比较常用的一种长连接方式。通过保持游戏端和服务器端处于同一状态,游戏端可以随时向服务端发送消息,服务器端也可以随时向游戏端发送消息,可以有效保证实时性数据的性质。以《王者荣耀》为例,如果使用短连接,在游戏过程中会出现过大的延迟,所以对实时性要求高的游戏会使用长连接。
除了以上两种方式之外,还有一种新情况,就是实时推送数据的能力。这种形式类似于手机会收到微信等各种APP的实时消息推送。工作流程是在进入程序时,客户端先向服务器发送消息,指示先监控哪些数据,然后只要监控到的数据发生变化,客户端就会收到变化的数据并推送过来。
2.小游戏+云能力
云能力可以有效提升小游戏的开发体验。首先,没有服务器,也就是说不需要域名注册。现在域名注册需要实名认证和许可证。有时该过程无法在两三周内完成。云功能变得更加简单;其次,不需要防御DDOS攻击,因为没有服务器,黑客当然无法启动,除非腾讯云挂了。
另外,在开发者配置方面,由于大部分能力都是集成的,没有服务器或后端工程师,可以降低人员成本;当然也省去前后端联调阶段,开发者直接在前端调用云端函数从服务器获取最终数据,缩短开发周期。
另外,无论是游戏还是其他产品,在研发阶段“”都会分为开发和生产,往往新功能上线时,会出现各种问题,完全避免云开发,只需要修改开发/生产环境即可切换,无需修改游戏中的代码。
基于云开发的AI智能客服实践
现在人工智能客服已经相当成熟,如何巧妙运用AI能力赋能小程序的客服功能? 后端经理高文飞现场讲解了如何基于开放的AI能力,真正实现机器客服的智能化。
即时应用后端负责人高文飞
腾讯智能对话平台TBP
AI智能小程序客服基于腾讯智能对话平台TBP打造,专注“对话即服务”,全面开放腾讯对话系统核心技术,主要提供机器人的中间件能力,所以普通开发人员还可以快速使用 AI 机器人。如果你只是想实现一个AI机器人,只需要按照上图给出的步骤,就可以在云端开发中直接调用机器人了。
但我们毕竟是开发者,需要理解语义模型,语义模型分为三个部分:配置字典、配置意图、配置问答。 (1):用户与机器人对话交互背后的目的,用户想要完成什么;(2):用于识别和填充中的槽位小程序开发技术简介,可自定义;(< @3)问答:预设问答,帮助机器人快速识别。
在AI智能客服需求功能方面,分为PC端和小程序端两个方向。 PC端包括开放云开发、部署云功能、TBP设置、自动回复设置、关键词回复、数据统计等功能;小程序端包括云函数处理、关键词匹配、转TBP、转人工等功能。
PC端后台管理的实现路径
后端代码在PC端的实现主要是通过关键词设置、自动回复、数据统计三个方面。云端功能通过微信授权API触发。预配置的云功能上传后,可以通过API操作数据库进行增删改查。机器人设置主要通过腾讯云的SDK来操作TBP平台。
小程序端的实现路径
小程序的实现主要通过云功能实现。客服系统需要主要作为客服入口的云功能、获取关键词、开场白或获取统计的云功能。下面重点介绍客服入口。
客服入口可以说是这个功能的核心。用户首次进入会话时,会自动回复开场白。如果用户没有消息去关键字,则进行关键字判断。当然,它需要是一个特殊的关键字,否则会与AI发生冲突。如果关键字回复不是,则会转给AI机器人进行处理。 AI机器人会理解用户的意图,直接回答问题或调用物流查询、服务预约等API告知用户。如果再次收到用户的消息,则返回判断。转不转人工,这是小程序客服的实现逻辑。
小程序云开发在猫眼影视运营中的应用
接下来,猫眼娱乐高级工程师高英健先生从猫眼技术团队的实践出发,讲解了小程序开发过程中如何避免重复研发工作。
猫眼娱乐高级工程师高英建
近年来,小程序越来越火,很多公司都开发了自己的小程序。为了吸引更多用户使用自己的小程序,各家公司也推出了各种运营活动。比如猫眼电影小程序首页会有各种抽奖、团战、秒抢、讨价还价、打卡、照片墙等活动,这些活动的流量比较大。而且如果一个运行良好,它肯定会在未来被重用。
传统意义上,想要复用一个,大致分为以下4个步骤:(1)定义模板的可配置项-[PM/ + + ] (2) ,开发活动配置项访问接口-[后端](<@3)在管理后台系统中添加活动配置项-[后端+前端](4)小程序取配置项,转换模板-[前端+后端]
这是一个很常规的操作,如果是一线开发的话,会经历这样的几个步骤。但是现在大部分项目都是前后端分离的,所以会出现权责分配等问题。此外,在前后端联调过程中也会出现环境不同、接口不同等问题,耽误了项目的启动时间。因此,有必要探索一种新的解决方案。
1.唐兔,基于腾讯小程序开发的解决方案
塘兔&云&小程序架构
塘图这边的视图层是专门提供给PM/运维同学编辑的。编辑完成后,我们将数据发送到Node端,Node端与小程序云交互,配置数据存在小程序云的数据库表中。存储这条记录后,会返回一个ID,然后根据ID和活动类型生成小程序代码或活动链接,方便PM/运营同学快速启动活动。
另外,在事件入口处,小程序代码和链接都有ID和Type。通过门户进入小程序,小程序会带ID到小程序云数据库表中检查记录是否存在。如果找到记录,可以结合模板生成新的活动。也就是说,一个ID就是一个的标识,这样同类型的多个就可以同时在线了。
唐图&云,核心数据交互图
为了减少工作量,唐图中用于生成活动配置数据的模板也存储在云数据库中。上图右侧的 - 是活动配置模板的数据表。在数据表中存储活动模板的一些配置项(不是数据),每个配置项都包含各种需要的表单属性。
这样做有什么好处?保存这些活动模板的配置项后,如果有新的字段需要模板化,或者有新的活动需要模板化,直接更改对应活动配置模板的json数据,或者上传新的活动配置模板json file 即堂兔可以根据这个活动配置模板动态渲染表单(无需改代码,上线即可),提供给PM或运维同学编辑生成活动配置数据(结合小程序模板)来获取新的活动。
2.数据存储政策
小程序云的不同环境是相互隔离的,因为小程序云可以创建两个环境,所以开发环境和在线环境可以对应小程序的开发版和在线版。如果使用之前的数据存储策略,需要在开发环境中存储一份数据,在线环境中存储相同的数据,非常繁琐。
因此,需要优化和调整数据存储策略。首先将数据存储在开发环境小程序云中,然后使用开发环境进行验证。如果数据没有问题,再点击塘图转成线上。环境数据,使线下环境的数据不会影响线上环境的数据。但是需要注意的是,存储和数据库都是权限控制的配置。比如在存储中,如果要上传图片,如果权限是私有的,URL是临时的,则需要通过小程序端的文件ID来获取。当前网址。由于塘图存储的内容都是配置数据,我们将这些数据设置为公共权限,URL不会过期,生成的URL可以直接存储在小程序中使用。
:快速构建 SCRM 小程序
随着微信小程序的不断发展,传统CRM厂商也在向微信迁移。毕竟,微信背后是庞大的用户和流量。用微信小程序做CRM和之前的做法有什么区别?腾讯云TVP大魔琼秋老师带领大家从零开始实践搭建SCRM小程序的全过程。
腾讯云TVP 沙漠之秋
作为小程序的经典实现,只要前端代码开发得好,云端做了大量的简化,开发了云端功能,开发了云端数据端的接口。这样,运维和部署都由自动化工具完成。我们借助腾讯云强大的功能,为我们节省了大量的时间和金钱。这是它的本质。
什么是 CRM?其实就是一个客户关系维护系统,电商、金融、餐饮、教育、电信、医疗,各大巨头、大企业都有CRM系统。那么既然已经有了一个好的桌面CRM系统,为什么还要做一个小程序CRM呢?原因如下:(1)微信拥有庞大的用户,现在微信背后有11亿用户,月活跃用户数惊人,月活跃用户数亿。(< @k8@ > 另外我们在微信上有非常完整的营销渠道,很多人用朋友圈、公众号、小程序进行裂变式营销,这是传统平台所没有的巨大优势。(3)微信是微信支付的幕后推手,支付宝和微信是国内移动支付领域的两大巨头,我们把微信当成一个小程序,让支付更顺畅,没有任何障碍。
而且,不仅大企业需要 CRM,零售店和其他个体经营企业也需要 CRM 系统来维护他们的客户。
SCRM和CRM的区别
在小程序中,绝对不可能将传统CRM的功能全部转移,所以功能实现上肯定有差异;而SCRM实际上更侧重于利用微信社交功能建立和维护客户关系;第三,SCRM更注重使用微信支付的功能。
市场上有类似的产品,如企业微信、钉钉。他们都有类似的 SCRM 系统。当然,如果能用在微信上,便携性更好,传播性更好,离用户更近。
最终效果界面
随着小程序应用领域的进一步下滑,小程序的实践也越来越广泛。我们有理由相信,越来越强大的小程序-云开发系统将会丰富小程序的体验和生态。
关于云+社区
+社区是腾讯云官方开发者社区,是腾讯云开发者生态的重要组成部分。提供技术专栏、技术问答、技术沙龙、行业新闻、开发者手册等服务。专业的技术分享社区,打造云计算技术生态圈。
云+社区科技沙龙是由“云+社区”策划主办的线下科技沙龙活动。希望通过技术分享让更多的开发者学习交流,成为腾讯云连接开发者的平台,共同创造技术影响力。
---------END----------