微信“小程序云”(云开发)简介与初体验

2018-08-22 16:32:07 浏览数 (1)

在7月10日的微信公开课第七季上,微信小程序团队预告了小程序云的到来。目前官方已经公测:地址 。现在名为“小程序·云开发”。本文笔者将从一个开发者的角度去介绍及说下自己的体验。

前言

笔者的一个小程序“DeveWork极客”目前使用了“小程序·云开发”的一些特征,如果你有兴趣可以搜索或者扫描小程序码体验。当然,于用户而言是看不出有使用哪些特征的。:)

本文言论仅代表本人从一个“小程序开发者与腾讯云用户”的角度上展开的看法,与所任职公司无关,特此声明。另外,个人理解的部分不一定符合实际情况,仅供参考。

什么是““小程序·云开发”?

先援引公开介绍:小程序云是微信团队联合腾讯云团队推出的一套小程序开发解决方案。小程序云为开发者提供完整的云端流程,弱化后端和运维概念,开发者无需购买和管理底层计算资源,包括服务器、数据库、静态存储,只需使用平台提供的简易 API 进行核心业务等开发,实现快速上线和迭代,把握业务发展的黄金时期。

如果你看不懂上面官方话术,没关系,用类比的思想我来介绍下:

版本1:从某种程度上,“小程序·云开发”就是类似谷歌GAE、渣浪SAE 这类 Pass (Platform-as-a-Service,平台即服务)服务,只不过技术年头发展到现在,具体提供的能力上有所区分且更多与微信小程序本身绑定得紧密。

版本2:其实从“小程序·云开发”设计理念上看,小程序云更近似于Serverless 服务。这也是小程序云提供的核心基础能力之一。关于何为Serverless,在这里就不多做介绍,请自行上网了解。

(图片来源)

版本3:如果你是小程序开发者,你应该听说过爱范儿的“知晓云”。没错,“小程序·云开发”在产品形态上对标的就是“知晓云”。嗯,经常抱微信大腿的爱范儿接下来估计慌得一比了。小程序云毕竟是腾讯自家的,所能获得的内部权限与接口不是“知晓云”能比拟的。当然,于开发者而言有竞争反而是好事。

“小程序·云开发”想解决什么问题

微信小程序目前在发展趋势有一个要点,那就是让开发门槛越来越低。从微信公开课透露出的“可视化编程”也可见一斑。众所周知,小程序开发目前是需要一定的前端开发能力的,且在构建稍微复杂的小程序上,还进一步需要后台服务,去进行繁琐的备案手续以购买搭建服务器与安装数据库来联合编写身份鉴权、数据存储等服务端代码,甚至在用户量上来后需要考虑系统监控、系统容灾等等问题——对于一些开发者来说就很难胜任了。

“小程序·云开发”就是要解决这些问题,通俗而言就是:我把服务端都搭好了,你看不见也不必看内部咋样,稳定性我来保障。你调用接口好好写小程序端代码就行了。

“小程序·云开发”跟现有的“腾讯云小程序解决方案”的对比

腾讯云目前有一个代号为 LA 的微信小程序解决方案,大概是一年前就推出的“一站式部署小程序资源套件”。不过就我使用起来,其实门槛还是算高的,更重要的是开通生产环境的价格实在是没啥吸引力。估计是腾讯云团队也是看到这点,所以小程序云已经提供一定的、可用在生产环境的免费额度。后续小程序云开放后,LA 这个地位估计会挺尴尬的,且在小程序IDE 上共存这两个估计也会让不少开发者迷糊。

 “小程序·云开发”基础能力介绍

小程序云提供的基础能力目前主要有如下三种:云函数、文档存储、数据库

云函数

云函数来源于腾讯云的“无服务器云函数 SCF” ,Serverless 的中文翻译变体。结合到小程序云上,其优势是“天然可信任的用户登录态”,即通过微信私有协议鉴权,不用写繁琐的鉴权代码。用起来就是在小程序端调用接口,传入 input 的 data,获取到返回的 result,就那么简单。当然,云函数本身的 function 还是需要你写的。目前小程序云的云函数仅支持 Node.js,且目前的使用体验来看,部署起来还稍微有点麻烦。

文档存储

文档存储来源于腾讯云的 COS CDN。在近几年AWS S3,七牛云,又拍云等教育下其实应该很多开发者知道这个东西,就不多介绍了。其优势就是与小程序的上传下载接口结合使用起来比较方便。

数据库

数据库基本可以当做是腾讯云的MongoDB 这类 NoSQL 数据库,在这里也不多介绍。小程序云上的优势是可以在小程序本身与云函数多端调用。

“小程序·云开发”控制台

于开发者而言,经过授权绑定腾讯云账号后,在小程序 IDE“微信开发者工具”上左上角的“调试器”右侧会新增“小程序云”的按钮入口,点击后进入一个窗口显示小程序云的控制台。实际用的时候会感觉这里的交互其实不怎么友好。里面的控制台会通过 tab 的方式进行排列功能,包括如下几个 tab:如“概览”以查看一些基础数据信息,用户管理,上面提到的每个基础能力等。界面做得算清晰明了。

具体到写代码层面上的体验,跟现有IDE 上的“腾讯云状态”结合的 LA 方案在 IDE 上的使用操作差不多。目前部署云函数还算有点麻烦,需要连 node_modules 也要打包上去,后续应该会集成云端安装Node 包的功能。

与开发者现有的服务如何交互

小程序云开发的背后其实是腾讯云近期发布的“TCB”(Tencent Cloud Base)服务,大体上可以认为 小程序云开发 = TCB 微信小程序能力。腾讯云已经开放一个admin-SDK,可通过该 SDK 与自有服务器资源交互,以完整的管理员权限进行云资源的管理。

0 人点赞