云原生微信小程序开发实战读书笔记-3

微信生态

小程序对微信来说是第三方应用,小程序接入微信登录的主要优势之一就是融入微信生态。微信生态可以从产品角度和技术角度看待。

产品角度

目前微信不仅仅是一个 App ,而是一个庞大的平台。小程序、公众号是以微信为中心两个典型的第三方应用,应用只是作为用户介入的入口或者功能的出口,它的背后还包括微信平台的各种能力,比如微信支付、微信运动、游戏……这些能力可以被称为微信生态。

技术角度

微信生态的意义在于微信提供了一些开放数据接口,开发者能以便捷的方法调用这些接口,进而通过微信平台的能力完成业务功能需求。比如小程序需要支付功能,如果自己研发一套支付体系,成本巨大(因为支付不仅仅是技术层面的,还有很多政策法规的要求)。而微信平台提供小程序调用微信支付的开放接口,只用做基本的资质备案审查,然后自己搭建服务器或直接使用云调用,把微信支付功能集成到小程序中就可以了。用微信平台提供的开放接口不仅减少了成本,也加快了业务功能的实现速度,进而提升了整体的研发效率。

开发调用方式的差别

传统调用方式

在传统的调用方式中,涉及了三个角色:小程序、开发者服务器和微信服务器。有一些特殊的私密请求是需要开发者服务器加入的。

Drawing 0.png

除了这个,还需要把握很多开发细节,比如 access_token 的有效期管理等。这些都需要在开发的时候考虑在内,比较麻烦。

免鉴权的云调用方式

在传统调用方式流程中,获取 access_token 的行为相当于得到微信的授权,然后才能使用这个 access_token。也就是授权凭证然后调用开放接口,这是一个典型的鉴权流程。而使用云调用则不需要关注这些,不用开发者服务器以及维护 access_token 缓存。

Drawing 2.png

云调用是云开发提供的,基于云函数免鉴权调用小程序开放接口的能力。云函数是云开发的原子能力之一,是运行在云端的一段服务器代码。 它可以充当传统调用方式中,开发者服务器的角色。云函数的代码可以直接在微信IDE中编写,代码写完之后,使用微信 IDE 将云函数部署到云端,然后在小程序端侧调用这个函数,这就是小程序使用云函数的基本流程。

虽然云函数可以充当开发者服务器的角色,但是它的能力不只是一个普通的服务,而是能免鉴权调用微信的开放接口Drawing 3.png

云开发好在哪

  1. 最明显的就是免鉴权。跟传统的调用方式相比,云调用不需要开发者服务器和 access_token 缓存维护工作,可以直接调用微信的开放接口,极大地提升研发效率。
  2. 云函数。有了云函数你就不用搭建一台开发者服务器了,也就是说,你不需要花钱买一台或租一台服务器了,节省了成本。如果你不关注公司花了多少钱,更关注技术,那你应该知道,虽然作为开发者,我们不经常编写服务端代码,但维护一台服务器的成本也是很高的,比如负载均衡、容灾、服务器监控、数据库冷备热备等。
  3. 云函数将服务器保障的工作(主要由运维工程师负责,现实中,后端工程师也需要兼顾一部分工作)转交给云端平台负责,让开发者只关注代码本身。换句话说,开发者有更多的精力投入到业务开发上,整体迭代的速度加快,效率得到了提升。

综合以上,云调用不仅节省了搭建开发者服务器的开销,而且也免去了管理 access_token 的逻辑代码编写工作,从经济和效率两个角度都优于传统的模式。