科普一下小程序云能力会带来什么影响

2018年9月10日教师节,小程序官方给开发者送了一份大礼。

“开发者工具新增【云开发】功能,开发者无需搭建服务器,就可实现小程序快速上线和迭代”

这是官方给这次功能的定义,从技术层面来说,简而言之就是提供了三种服务:

  1. 数据库,即提供远程数据库,供开发者存储基础数据;
  2. 云函数,即提供1中基础数据间互相运算的接口定义方式,通过这种方式定义的服务端接口自带鉴权;
  3. 存储管理,即提供文件上传、下载、前端引用的方式,并提供相应的管理功能

同时要强调的是,这些目前都是免费服务,真是良心之举,具体开发细节可看官方文档:

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html

这里就不聊了。(注.小游戏也适用)

接下来从三个上面说说,如果基于这套云能力来做真实项目,会有怎样的区别:

一.开发流程

以往我们开发一个小程序或者小游戏,可能会涉及到数据存储的功能(如全网排行榜、获奖记录、留言评论等功能),整个项目,起码要有5个角色要参与到开发中:

a.需求方,负责提需求做策划,有时候也画一下交互。

b.视觉/交互设计,负责把需求文档具象化为交互稿、视觉稿。

c.前端开发,负责把视觉稿初步代码化,制作出不带数据交互的页面(不带数据交互是说还没有跟远端服务器发生具体的数据交互)。

d.后端开发,负责在服务端进行数据运算,同时为前端开发提供数据调度接口,或为前端开发提供数据处理接口。

e.项目经理,负责整个项目的推动,有时候可以是a需求方来兼任

有了小程序的【云能力】后,c和d能合并,这部分工作可直接交由前端开发同学去实现,也就是说前端同学可直接实现后端开发同学本来要做的“前端接口制作”以及“服务端数据运算”的工作。

以往我们需求立项后,前后端同学理论上需要开一次主题为“定义需要什么接口以及接口规范怎么定义”的会议,有了这个云能力,该过程可以省略了,直接免去了前后端沟通的成本。

同样,项目经理在对项目排期时,也可以免去对“后台开发”的排期。

当然,这样也会导致前端开发同学兼顾的工作内容更多。

二.服务器资源成本

以往我们可能在安排后台开发人力的时候,已经可顺带评估所需服务器资源,但非技术同学可能对这关感知不是太清晰,特别是如腾讯这种能有专门团队去统筹服务器资源的公司来说,一般这些事情产品经理可能是感知不到的。但其实服务器资源是需要运维人力去维护的,服务器资源本身的运转也是需要设备成本的,这一切都是成本。

而基于小程序的【云能力】,我们目前可以免去这两部分成本,能把这部分成本转嫁给微信官方,因为这样的话,微信官方相当于提供免费的服务器资源,同时提供了基础运维服务。

三.功能局限性

从上述两点看,用这【云能力】去做小程序项目貌似百利而无一害,实际也确实能节省不少成本,但其实它本身只提供了常用的功能封装,要实现复杂的功能,不是不能实现,但还是需要专门的后台人力来对接。

简而言之就是说:云能力给你提供集成常用功能的服务器环境,但作为前端开发工程师的你并不会因为它得到高深的后端编程能力。

总得来说,非常牛逼,也非常厚道;大部分常规项目,不考虑延展的话,推荐使用;大型项目可能还是需要仔细评估。

当然也可以是原来的后端开发模式+云能力开发模式混合开发,这种模式下先解决“鉴权”问题就好办了。