从微信开发者工具到微信小程序解决方案
发表时间:2023-09-04 06:26:50
文章来源:炫佑科技
浏览次数:222
菏泽炫佑科技 菏泽炫佑小程序开发 菏泽炫佑app制作 炫佑科技
从微信开发者工具到微信小程序解决方案
2019年10月19日,由腾讯云与微信小程序团队联合举办的“小程序云开发”技术峰会在北京举行。 小程序云开发注册账号23万个,超过50万开发已开始使用。 这是腾讯云与微信小程序团队联合推出云开发服务以来交出的**份重要成绩单。 而这个过程是小程序诞生的那一天开始的。
1 过去:从微信开发工具到微信小程序解决方案
2016年1月11日,张小龙出现在微信公开课专业版上发表公开演讲。 正是在这次演讲中,微信正式宣布正在开发“应用号”。 当时被描述为“像App一样的公众号”,“应用号”于同年9月正式更名为“小程序”并发布内测。
在“应用号”发布当天,微信宣布推出微信网页开发工具,该工具可以让开发在电脑上模拟访问微信网页,帮助他们更方便地开发和调试。 自此,微信Web开发工具成为微信小程序官方IDE微信开发工具。
微信开发工具是基于Node.js和实时应用程序运行环境,使用node-开发。 其中,MINA(MINA IS NOT APP)是其开发微信小程序的框架。 MINA为开发提供了自己的视图层描述语言wxml和wxss,以及基于它的逻辑层框架,并在视图层和逻辑层之间提供数据传输和事件系统,同时小程序也为开发提供了UI组件库和底层 API。 后端开发在开发中可以使用这款微信开发工具来增强网络调试体验,提高开发效率。
但正如bug只会越来越被修复一样,微信开发工具也并没有想象中的那么完美。 内测中的微信小程序只能在工具内调试,不支持热更新。 而且,对于已经习惯了其他编辑器的开发来说,当时的工具并没有想象中的那么“顺利”。
2017年1月9日,小程序上线。 后来,随着微信小程序的出现,腾讯云的微信小程序解决方案Wafer也随之推出。 同年12月底,微信小游戏“跳一跳”上线,正式点燃小程序热潮。 当时,在如此高并发和大规模日活跃用户增长的情况下,如何保证小程序的流畅性,提高小程序开发效率,成为小程序开发不得不面对的问题。
由于企业级和个人开发小程序的不同需求,腾讯云基于企业级IaaS能力和个人开发解决方案定制了解决方案。
为企业用户提供业务服务器和会话服务器。 业务服务器部署并处理业务相关逻辑,而会话服务器则用于独立处理用户会话相关逻辑(登录、注册等)。 业务和会话的分离将有助于中大型企业客户未来扩展小程序的后台。
然而,随着4月份微信开放微信小程序个人注册,小程序的开发大多是前端和终端开发,他们往往对服务端有很多非业务逻辑的了解,不方便代码调试、操作以及维护和扩展。 不足之处,就出现了架构复杂、开发上手成本高、代码调试不方便等问题。
针对该问题,腾讯云提出了供个人开发使用的解决方案。 从Wafer 1到Wafer 2,为了平衡安全性和便捷性从微信开发者工具到微信小程序解决方案,Wafer 2合并了会话服务器和业务服务器。 不仅如此,用户还可以自行购买服务器,无需服务器端配置,自动颁发和部署SSL证书,区分开发和生产环境,实现开发和线上分离,并将解决方案集成到微信开发工具中。
随着微信小程序版本的不断迭代和更新,小程序开发的门槛越来越低。 但只有开发才能真正解放双手,将小程序与云能力结合起来,实现快速、低成本的开发小程序 小程序开发所追求的目标。 2018年7月10日第七季微信公开课上,微信小程序团队宣布小程序云开发的到来。
2 现在:微信小程序开发新模式
尽管小程序开发门槛再次降低,但自从小程序诞生以来,业界更加关注小程序前端的技术演进,前端开发效率得到了大幅提升。 。 然而,开发一直面临着以下后端瓶颈:
为此,合众通过不断优化授权流程及相关配置,于2018年9月正式上线小程序云开发。
小程序云开发是微信与腾讯云联合开发的原生云服务。 一般来说,包括as a和Func as a,云开发结合微信提供的各种能力,实现免登录认证,无缝调用微信的开放API。 通过简化复杂的后端和运维操作,即使没有一定后端知识的开发也能高效地开发高质量的小程序。
云开发系统主要分为终端层、接入层和资源层三部分。
如下图所示,可以看到云开发系统架构涉及微信、腾讯云和开发,但腾讯云底层连接了微信的自研网络和云网络,以及开发在腾讯云上现有的服务。 在此基础上构建了一体化的云网络,开发可以轻松地将云开发集成到现有服务中。
为了保证云开发的后端架构和稳定性,云开发设计了容灾架构。 小程序·云开发后端服务采用多IDC、多园区部署,实现跨园区容灾。 各园区均具备一定的冗余服务能力。 当其中一个园区发生故障时,请求将自动路由到另外两个园区。 园区内,服务将继续由另外两个园区提供,不会对营业造成影响。
在网络层面,微信对用户采用就近访问的原则,提高了访问质量。 在此基础上,借助精准实时的引导,通过识别用户客户端版本、网络环境等数据,下发IP列表,引导用户到达*合适的接入点,进一步提高用户访问质量。
安全方面,云开发通过全链路票务系统保证整个请求链路的安全。 如下图所示,**部分是微信客户端向微信后端服务的用户请求。 云开发请求使用微信底层私有协议mmtls与微信后端服务进行通信。 当业务层数据加入mmtls后,可以做到防窃听、防篡改、防重放、防伪装等安全措施。
当微信后台收到云端开发请求时,首先会验证用户的身份,并全程保证数据的安全。 这是如何保证的呢? 用户登录后,后台会向客户端发放票据,客户端每次请求时都会携带票据。 在后台服务的整个处理链中,所有对核心数据服务的访问都会被验证,看看票证是否合法。 如果是非法请求,将被拒绝。 为了保护用户隐私数据,只能通过用户客户端发起。 操作来访问。
由于云开放的整个链路都是经过认证的,所以云开发执行云功能时,后台会自动验证请求票证。 开发可以无缝使用微信的开放能力,无需经过常规的OAuth授权和自行维护。 “小程序·云开发”对数据访问环节的特殊优化,也促进了小程序更快的数据加载速度。
此外,针对小程序开发普遍关心的性能问题,微信小程序团队相关负责人也在小程序云开发技术峰会上进行了深入的讲解。 以云函数为例,执行云函数需要三个步骤:创建容器、下载代码、部署执行。 由于启动容器是一个耗时的操作,通过函数实例复用、容器实例预创建、热代码缓存等优化,云函数容器的启动时间从秒级缩短到毫秒级。 容器冷启动期间,开发可以进行代码精简(缩短下载时间)、资源复用(缩短执行时间)、公共剥离(增加缓存效果)、保持活跃(避免资源回收)等。
同时,为了提高云功能的性能,云开发也在通信、业务和网络层进行了一些优化。 通信层改造私有协议,优化长期连接复用; 在业务层,将请求分为不同的段北京微信开发小程序,优化内部调用链路; 在网络层,压缩系统间的网络开销,将纯异步模式转变为多段同步模式。 。
正因为如此,今年以来云函数请求性能提升了60%。 据了解,小程序的一个云功能请求在测试环境中已降低至140毫秒,相关优化也将在下一个微信版本中发布。
3 未来:小程序云开发仍在路上
作为一种全新的小程序开发模式,在小程序云开发技术峰会上,开发*期待的云开发的*新技术能力和下一步也一一揭晓。