海媛:小程序·云开发助力开发者快速构建小程序

12月15日,由腾讯云主办的首届“腾讯云+社区开发者大会”在北京举行。本届大会以“新趋势•新技术•新应用”为主题,汇聚了超40位技术专家,共同探索人工智能、大数据、物联网、小程序、运维开发等热门技术的最新发展成果,吸引超过1000名开发者的参与。以下是小程序分会场的演讲内容,稍作整理,分享给大家。

我今天的分享并不会重点介绍基于小程序·云开发大家可以怎么做小程序的开发。而是跟大家分享从一个产品的角度我们为什么会做这个事情,为什么小程序·云开发会呈现出现在这样的产品形态,以及未来我们可能在现有能力的基础上怎么做进一步扩展。首先我们回到源头思考一个问题小程序云开发是什么,为了回答这个问题,我们先来看下如果我们要开发一个小程序,需要做些什么。

在一个传统的小程序开发模式中,我们要做客户端开发,做服务端开发,在小程序一上线的时候我们就做了微信开发者工具,基于微信开发者工具,开发者可以完成客户端代码的开发、测试、上传和部署。。再看一下服务端,当然最重要的是写业务逻辑,除了业务逻辑还要购买服务器,购买域名,还要配置监控报警,甚至还要做一些网络优化相关的东西。这里我就不一个个展开去讲过了,我们抽其中一件事来看看具体需要做些什么。比如,域名备案,我们要验证备案信息、提交申请,通管局的审核,这个过程要20天。

而这只是域名备案这一件事所需要的时长。我们发现就服务端开发而言,开发者需要耗费大量的时间在和业务逻辑开发无关的事情上。于是,我们开始想,官方能不能做一些事情,能让开发者把更多的精力放在业务逻辑的实践上面而不是做其他的事情,这就是我们做小程序云开发的初衷。

那么小程序云开发是什么?我们认为他应该是一种高效的小程序服务端开发模式,当我们立下这个目标的时候我们产生了另外一个思考。作为一种后端服务你应该具备什么样的能力?作为一个还稍微算合格的产品经理我理了一下我们的需求,对应的想了一下我们的解决方案。

服务端的开发一定是需要资源,要购买服务器,要购买域名,还要做环境配置。在现有的技术方案中如何能快速地获取这些资源呢?其实答案就是云服务。

接着我们看有了这些资源要做什么?我们要做代码的开发测试,要做代码的提交和线上部署,甚至还要做一大堆的运维操作,要设置监控、报警等等。我要怎么把这些操作结合起来呢?因为最开始我们讲到在小程序刚推出的时候已经推出微信开发者工具,我们希望大家的操作是可以在一个工具里完成的,可以在工具里不仅做客户端开发还可以做服务端开发。

在我们的业务开发中还会面临一个问题就是权限。既然它是小程序的后端服务能力,它应该和小程序现有服务使用统一的鉴权,我们需要跟小程序的权限体系打通。有了这些思考和想法我们就有一个大概的雏形,这时候涉及到另外一个关键的问题,你有能力应该怎么用?我们思考了很久,也想了好几套方案。比如说我们可以什么都不用做,只是把资源提供给用户,让给开发者自由发挥。当然我们还可以进一步去做,我们可以用授权的方式打通小程序端到云服务之间权限的管理,即使做了这样的一个授权,我们发现在用户的使用看来,整个操作流程还是繁琐的,还是有必要的操作是需要完成的,这些跟业务逻辑的实现无关的。

经过大概一年多的探索我们最终产生了这样的想法,我们觉得小程序后端服务的使用就应该像我们调用一个API那样简单,他应该是小程序的一项基础能力,像我们的插件、组件一样你用或者不用他都在那里等着大家。

有了以上所有的想法,接着我们就做了小程序开发云这件事情,我们提供了三大基础能力,基于这三大基础能力,开发者就可以完整的迭代出一个小程序的后端服务。

我们有什么?我们有数据库,我们的数据是一种文档型数据库,开发者可以自由的组织自己的数据结构。。我们还有什么?我们还有存储服务。通过存储服务,可以进行文件的上传和下载。同时,我们为每个存储绑定了CDN,利用内容分发网络的优势来优化文件下载体验。

接着我们还有云函数,这就是有非常抽象的概念了,因为我跟大家解释很久大家才知道云函数是什么。所谓云函数就是云端运行的一串代码。在这里你只需要关心自己业务逻辑的代码怎么去写,通过一个简单的操作就可以把代码上传部署到云端。同时,在云函数中,开发者可以通过wx-server-sdk中各类接口的调用方便的操作操作数据库和存储资源。

现在,基于小程序·云开发,大家可以开发小程序、小游戏和插件。未来我们还会进一步拓展小程序·云开发的应用场景,让它惠及到更多的开发者。

上面介绍了我们的能力,接下来看我们怎么用。我们并不希望大家的操作是隔离的。,就是我在开发者工具里做了一件事,然后我跳到另外一个地方做另外一件事。大家只要登录了微信开发者工具点击云开发就可以完成整个资源的开通,然后在我们的云控制台里你可以对上述所说的三种资源进行管理,然后回到我们的开发者工具一个简单地配置就可以写你的代码,然后再将代码进行提交,整个过程非常便捷,如果大家有兴趣可以试一试。

那么小程序·云开发到底解决了什么问题,以及他的优势是什么?这里我用了一个卡通的对话来跟大家分享下。有一天一个菜鸟工程师走到一个大神的面前说,大佬大佬我想做一个小程序,我该做什么呢?在没有云开发的时候你要做什么,大神只能画图来告诉你了,说你可能需要小程序的前端服务,你需要后端服务,在搭建后端服务的时候你需要购买很多的资源并进行各种配置和运维操作。

终于到了写代码逻辑的时候,你还要维护一套复杂的鉴权体系。因为当用户自主去搭建服务器的时候,你的鉴权是要通过小程序的客户端到开发者自己部署的Server端再到我们微信的Server端来完成整个鉴权。可是自从有了云开发我就不需要再做那么多事情了,一键开通你就具备最基础的小程序后端的迭代能力了,同时,鉴权也会变的非常简单,我们在云函数通过SDK利用一个接口可以获取整个调用的上下文,包括了appid、openid等。开发者无需维护复杂的鉴权机制,即可获得 天然可信任的用户登录态。剩下的时间大家可以很开心地写自己的代码。

最后,想跟大家分享下未来我们还将提供哪些能力。从9月11日上线至今,我们收到了很多的用户反馈。比如说,现在控制台上的一些操作还不够完善,后续的迭代计划中,我们也将进一步去完善整个控制台的设计。还有一些用户表示,希望我们能够提供给一些接口,可以将云开发和自己现有服务打通。我们把这个需求进行抽象会发现这其实是云开发的开发能力。而开放能力也是我们后续会进一步迭代的功能。

我们再看能力的拓展,后续我们会不断的拓展小程序·云开发的接口能力,让大家可以在云函数中方便的调用各类微信的原生接口。还有很多的用户也有提到,现在我们提供了基础版本,你们有没有其他的版本可以提供给我们呢?我们把这个需求也抽象出来是认为大家需要我们提供更多的资源模式,让它能够满足不同类型小程序的使用需求。而这也是我们正在规划中的功能。

以上就是我今天简单地一个分享,我们的目的非常简单,我们希望客户端开发能力是简单的,服务端开发也是简单的,让更多的开发者进入到小程序开发的生态中,让大家发挥自己的创意,去创造更多小程序。

Q:我现在想在我的公众号里面加上小程序的模块。

A:你希望你在你的公众号里加一个入口跳转到小程序里面对不对?你想要实现的功能是公众号跳转小程序,还是这个小程序的开发?

Q:小程序的开发。

A:那完全可以使用我们现在提供的功能进行开发。

Q:你好我想问一下,我自己本身也在做小程序开发,我想说如果前期有一个idea想用云开发快速实现它,后期我想把它转化到自己的数据库里,数据库在潜入到(MSK)再用到自己的服务来怎么操作?

A:这就是能力拓展的问题,我们收到用户反馈比如说我现在用云开发,以后我想把这些数据拿到其他地方用,或者用云开发现在提供的能力去调用其他的服务,这都是后续开放能力所涵盖的内容。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券