你必须要掌握的微信小程序云开发
微信小程序开发已经成为目前最火爆的技能之一,无论是在求职、毕设、兴趣培养等方面都已经成为一项必备技能,而小程序云开发技术的出现更是点燃了整个小程序生态圈。
在2019微信公开课PRO小程序分论坛上,腾讯云宣布推出总价值超过10 亿元的“小程序·云开发”资源扶持计划,对超过一百万个小程序开发者提供免费资源扶持,全面助力开发者通过云开发打造优秀的微信小程序。这是继与微信团队联合推出降低开发门槛的“小程序·云开发”产品后,腾讯云在小程序开发成本上再次面向开发者释放红利。
那么什么是小程序云开发呢?我们通过对比云开发模式与传统开发模式之间的区别,来解释什么是小程序的云开发。
小程序云开发与传统开发模式区别?
小程序传统开发模式
- 开发效率低:
大多数小程序所展示的数据都应该不是在页面上写死的,所以大多数小程序都需要一个服务端,服务端可以用多种技术实现,如PHP、Node.js、Java等。不管使用哪种技术实现服务端,开发一款小程序一般情况下都需要至少配备两个程序员,一个开发小程序前端,一个开发小程序服务端,这样的话这两个程序员之间就需要不断沟通,确认共同遵循的接口。可沟通过程中往往权责不清晰,有很多临界的位置,谁管都可以,容易引发扯皮,沟通成本非常高,导致开发效率下降。同时,由于开发人员的增多,整个开发的成本也会提高。这也是困扰着很多创业型公司的问题。
- 维护成本高:
项目上线的时候,公司需要自己搭建服务,不仅要花大价钱买机器、买宽带流量,还得请专门的人员去维护。运维人员需要考虑比如数据库运维,文件存储、内容加速、网络防护、容器服务、负载均衡、安全加固等等一系列的问题,这在公司里面是很头疼的一件事。
小程序云开发模式
小程序云开发是腾讯云和微信团队联合开发的,集成于小程序控制台的原生 Serverless 云服务,为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代。只需要一名开发人员就可以完成所有的工作。云开发核心能力包括:云存储、云数据库、云函数、云调用、HTTP API。
区别对比
传统开发模式
- 开发效率低:过多的非业务逻辑需要处理,导致开发效率难以提升
- 资源投入高:无论是物理机托管,还是云主机维护,都需要较多的人力物力投入
- 产品上线慢:前后端联调、资源存储、部署等操作繁杂,上线流程耗时长
- 日常运维难:需时刻关注环境运行状况,管理相关资源,运维难度大
云开发模式
- 高效开发:只需编写核心逻辑代码,内建小程序用户鉴权,无需关注后端配置与部署,专注于业务开发
- 节约成本:按请求数和资源的运行收费,极大节约时间和成本,提供一定量免费额度使用
- 官方生态:原生集成微信SDK,云相关API开箱即用;同时,通过云调用,可免鉴权直接调用微信开放接口
- 稳定可靠:底层资源由腾讯云提供专业支持,满足不同业务场景和需求,具备快速拓展能力,确保服务稳定,数据安全
2019前端热词Serverless
在2019年,前端有一个很火的热词,叫做Serverless,server就是服务,less更少的,翻译过来就是无服务开发,而小程序云开发是这种无服务的开发。举个更形象的例子,比如我们想开一场演唱会,之前的做法是需要自己联系场地、灯光、伴奏,而有了云开发以后,相当于是演唱会需要的所有东西都有人帮我们准备好了,我们只需要站在舞台上演唱就可以。
Serverless中有一个概念,叫做 函数即服务,我们在使用云开发来实现小程序后端服务的时候,可以直接调用函数即可,对前端来说,后端服务就是一个函数,整个小程序的前后端逻辑都能在一个IDE里面完成,用户其实完全不用担心到底哪些是服务器的逻辑,后端服务和前端完全的融合在一种代码体系里去了,这样后端的服务即是一个函数,至于这个函数是在前端实现,或者是在后端很远的地方实现,开发者都可以不用关心。所以说,severless打破了物理隔离。开发者不再去做任何隔离中间层的事前,我只需要关心函数的实现就可以了。
所以这种开发模式可以实现真正的全栈技术开发,这对现有的开发模式是一个很大的革新。
小程序云开发优势
- 快速上线项目:快速上线对于公司是非常必要的。很多公司可能已经具备了自己的网站或者APP,但现在小程序如此火爆所以想开发一款小程序,那么小程序·云开发可以帮助你在最短时间上线应用,完成快速试错
- 专注核心业务,放弃非核心逻辑:使用云开发以后,你只需编写最重要的“核心代码”,不再需要关心周边组件,极大地降低了服务架构搭建的复杂性,成本更低
- 你可以独自完成一个小程序的设计、开发、发布:在传统的开发模式下,你需要一个后端开发者来配合你完成整个小程序的开发。在小程序·云开发中,你只需要借助云开发提供的丰富的 API ,就可以实现数据的存储、文件的上传、结果的计算,大大的提升了工作的效率
- 你无需学习一门新的语言:小程序·云开发目前支持 Node.js ,和进行小程序开发时使用的 JavaScript 同出一门,你可以以更低的学习成本来完成小程序的开发
- 你无需关注系统运维:当应用上线后,运维就成为了一个大的问题,当海量流量来袭时,如何快速调整系统容量,确保业务的稳步运行就成为了一个问题。当你使用云开发后,云开发将为你接管运维层面的事务,让你更加关注应用本身
- 弹性伸缩:在传统的单体开发模式中,应用需要以应用、站点为单位进行伸缩,因为我们的开发是基于整个应用、整个站点进行开发,无法单独对某一个特定的功能进行伸缩。而云开发所采用的 Serverless 方案中的运算部分,是交给云函数来进行处理的,你的应用由一个个函数组成的,因此,在弹性伸缩方面,粒度进一步细化,针对特定功能的函数来进行伸缩,弹性效率更高,能够承载的请求量更大
- 数据安全:在云开发模式下,每个用户的环境资源是独立的,也即是私有的,并且云开发提供与自有数据库打通的能力。这样,用户的数据都存在用户自己的云开发环境资源下面,一定层面保障了用户的数据安全与稳定性
开通云开发
- 下载微信开发者工具并安装:下载地址
- 新建项目,后端服务选择小程序云开发
- 新建项目后,点击开发工具上方云开发按钮
- 点击开通按钮
- 填入环境名称,图中的基础配额完全都是免费的
- 点击确定,开通云开发
- 开通以后,官方给出从时间是十分钟左右就可以开通成功,实际测试其实很快
云开发提供的五大能力
1. 云函数
一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。
小程序内提供了专门用于云函数调用的 API。开发者可以在云函数内获取到每次调用的上下文(appid、openid 等),无需维护复杂的鉴权机制,即可获取天然可信任的用户登录态(openid)。
开放了运用 Node.js 等框架编写“后端”业务逻辑后,直接可以部署在云平台下,完全不需要去考虑域名、服务器、打包发布、运维等等琐事
2. 云数据库
云开发提供了一个 JSON 数据库,顾名思义,数据库中的每条记录都是一个 JSON 格式的对象。一个数据库可以有多个集合(相当于关系型数据中的表),集合可看做一个 JSON 数组,数组中的每个对象就是一条记录,记录的格式是 JSON 对象。
这样的话,数据库的存储也不用考虑了,直接提供了一个类似于 MongoDB一样的数据库,而且免费的存储空间达到了 2G,一般的项目足够使用了
3. 云存储
云开发提供了一块文件存储空间,提供了上传文件到云端、带权限管理的云端下载能力,开发者可以在小程序端和云函数端通过 API 使用云文件存储功能。
在小程序端可以分别调用 wx.cloud.uploadFile 和 wx.cloud.downloadFile 完成上传和下载云文件操作。
这就相当于腾讯直接给你提供了一个静态文件的 CDN,免费的容量直接达到了 5G,一般项目前期是够用的
4. 云调用
云调用是云开发提供的基于云函数使用小程序开放接口的能力,支持在云函数调用服务端开放接口,如发送模板消息、获取小程序码等操作都可以在云函数中完成
5. HTTP API
云开发资源也可以通过 HTTP 接口访问,即在小程序外访问。比如你的小程序项目,需要做一个后台管理系统对小程序中的数据和文件进行管理,就可以使用HTTP API来访问云开发当中的资源
小程序开发适合人群
- 打算进入职场,从事前端开发甚至是全栈开发的职场小白
- 已经有了一定的前端工作经验,但由于公司业务需要,打算学习小程序开发的技能党
- 正在做毕业设计并且想做出精品高质量毕设项目的学生党
- 看到小程序开发如此火爆,打算一起尝鲜的达人
小程序开发学习建议
- 多看官方文档,小程序的官方文档写的非常的全面,涵盖了微信小程序开发的所有知识点,大家一定要多看微信小程序官方文档
- 多逛小程序开发社区,关于微信小程序的新功能以及更新内容都会在社区上面通知,大家遇到技术问题也可以在上面提问,会有微信团队官方工程师帮助我们解答
- 多敲代码,多练习。只有自己不断的练习才能真正的得到提高
- 分析问题和解决问题的能力。这是需要时间不断积累的,在遇到问题的时候,一定要多思考,对于有错误信息的问题一定要认真翻译错误信息,大多数的错误线索都能够被找到
- 微信小程序与云开发入门课程,可以看我的慕课免费视频《轻松入门微信小程序与云开发》,大家在学习中的问题都可以在课程问答评论区留言,我都会认真的回复
- 小程序云开发的实战课程也已经上线, 《微信小程序云开发 -- 从0打造云音乐全栈小程序》,这是首发的完全基于小程序云开发打造的一站式全栈小程序实战课程,本门课程以云音乐实战项目为例,是横跨小程序端、云开发后端、后台管理系统的一站式云开发小程序全栈项目