小程序-云开发基础

2020-10-28 16:43:58 浏览数 (1)

撰文 | 川川

VX-ID:suibichuanji

前言

最近在学习研究小程序的云开发,不得不令人惊叹,个人觉得如果把小程序比作是干柴,那么云开发就是一把烈火,助推了小程序,小游戏的野蛮生长

一种无服务serverless的开发模式正在崛起,在未来,个人觉得它会成为开发网站,app,应用等宠儿,在传统开发里,开发一个完整的产品,需要前端,后台,运维等技术人员的介入,整个链条很长,开发成本大,周期长

但当有了云开发之后,后台,运维等都被弱化了,你无需去搭建复杂的服务器,考虑配置资源,DB运维,内容加速(cdn),负载均衡,安全加固等一些问题

将服务端的运维部署以及运营环节托管给腾讯云去管理,这对于类似像我这种服务器端的小白来说,简直的是雪中送炭

我们只需要根据腾讯云平台提供的API进行核心业务的开发,即可实现产品快速上线和迭代

云开发提供了完整的后台基础能力帮助开发者进行小程序,小游戏的开发,现在pc端也支持小程序了,在不久将来,我相信这种一站式开发模式将会越来受欢迎,已经会成为一种不可阻挡的趋势,又是前端的春天.

下面就一起来学习下小程序的云开发的

在开篇之前,为了扫盲一下,聊聊小程序是什么

小程序是什么?

相信你每天都在微信里用的小程序,已成成为了生活不可缺少的一部分

  • 功能上: 它是一种全新的连接用户与服务的方式,寄生在微信app内,可以在微信内进行广泛的传播和获取,服务于我们的吃,喝(定外卖等),玩,乐(小游戏),衣,食(电商),住(旅行,住宿),行(打车,骑行)等各个方面的服务,随用随弃,无需下载,安装,可娉美于原生APP的应用体验
  • 开发上: 混合式开发,Hybrid应用,跨平台开发,一套代码可同时在安卓,IOS,微信客户端上运行
  • 语言上:使用的是javascript,它同网页开发有着很多的相似性,但却不苟同,对于搞前端开发者的同学来说,从网页开发过渡到小程序开发,学习成本并不高,如果有使用前端三大框架(Angular,Vue,React)的经验呢,对于写起小程序起来,总会藕断丝连,浮想联翩的,小程序吸纳借鉴了各个框架的,指令,模板,组件化等优点
  • 特点:高频, 短时长,传播广,速度快,扫码,转发,曝光度大,成本低,有客服,支付,物流等接口,应有尽有,小程序应用可以说是无处不在,无孔不入
  • 商业上: 变现落地快,开发成本低,个人独立开发者想象无极限,众多大小企业纷纷入局小程序,从微信提出的在小的个体,也有自己的品牌,让早一波自媒体人赚得流油,对于开发者而言,更是如此.

(这是一位看图识字的前端大佬做的小程序获得的赞赏)

如果你做的小程序很有意思,有用,其实是有人愿意小额鼓励的

并不是所有人都是吝啬,一毛不拔,群众的眼睛是雪亮的

(微信广告获取收益也是一部分,如果小程序曝光量大,使用的人多,收益还是很可观的)

贫穷限制了自己的想象,自己做不到,并不代表别人就做不到的

我曾经看过一位做小程序的大佬,一天收广告费就1000多的,一个月就搞好几万

这种具有可持续性的收入的东西,才值得花时间投入,研究

这个其实也是躺着赚钱的一种方式

(点点底下的广告也是一种支持,鼓励)

如果喜欢,谢谢支持

而在小程序上人人都可皆成为开发者权限,是可以实现自己小小创业梦的,从点子设计-产品规划-前端-后台-运营推广,一站式一条龙的服务,躺着都可以挣钱在也不是天方夜谭,变得遥不可及

当然至于更多技术方面的小程序与网页开发的区别,在单独的小程序章节中,有兴趣的话,我们以后在聊

说完了小程序,那么云开发到底又是什么?一提到云,容易让人联想到阿里云,腾讯云,华为云,云计算,甚至还可能让你想到“马云”,让一些不明的吃瓜群众一脸懵逼

所谓的xx云之类的,某种程度上,是将数据的计算,存储等能力部署放到远端上,一种分布式方式,它不受物理坏境空间等影响,也就是我们常常听到,本地服务挂了,莫慌,还有远端的在跑着的,备灾呢.

云更多扮演的是一种"撒手式无人自动化"管理的角色,管理一些存储等资源,例如:图片,用户信息等

而端对应的我们的输出终端设备,例如:pc端浏览器(IE,firefox,chrome),手机浏览器(uc等)甚至有些app和应用程序

云开发提供了对应各个平台终端的sdk接口.开发者只需调用就行,专注业务核心功能开发就好.

将应用程序(代码)部署到云端上,托管给腾讯云去管理,根据腾讯云平台提供的API,进行核心功能的开发,让开发者更多的关注自身业务的开发,快速实现产品的上线和迭代

云开发(Tencent Cloud Base,TCB):是腾讯云 微信小团队强强联手为移动开发者提供的一站式后端云服务,它帮助开发者统一构建和管理资源,免去了移动应用开发过程中繁琐的服务器搭建及运维、域名注册及备案、数据接口实现等繁琐流程,无需理解后端逻辑及服务器运维知识,让开发门槛更低,效率更高,这样的一门技术

小程序的传统开发模式

客户端: 用户UI界面,属于前端部分,前端会展示很多数据,例如文字信息,图片等,有些数据不是写死的,往往是从后端的数据库读取出来的,在后端需要写相应的业务逻辑代码

服务端: 后端(php/java/python/node) 数据库(mySql/MongoDB等)

过程:需要购买域名,备案,前后端沟通成本,DB运维,文件存储,内容加速(CDN),网络防护,扩容,负载均衡,安全加固等,公司需要自己去搭建服务器,还需考虑流量,带宽,专门的人去维护

特点:开发效率低,成本高,迭代周期长

云开发模式

客户端:同上,在小程序端上直接操作云数据库和云存储以及调用云函数

云开发: 云函数(Node),云数据库(MongoDB,NoSQL),云存储,交给腾讯云去部署,无需运维,省去了传统复杂的开发流程,可以做到一站式全家桶的开发(在云函数中操作云资源)

特点: 无服务的serverless开发方式,弱化了后端和运维的操作,不需要考虑硬件等基础设施,开发者只关注自身的业务逻辑,做到快速迭代,上线,无中间阻碍的开发

云开发提供了几大基础能力

  • 云函数:在云端运行的代码,微信私有的天然鉴权,开发者只需编写自身业务逻辑代码,相当于后端的NodeJs服务
  • 作用:无需搭建服务器(省去了运维)
  • 具体应用
    • 获取appId
    • 获取openId
    • 生成分享图
    • 调用腾讯云SDK
    • ...
  • 云数据库: 一个可以在小程序端操作,也能够在云函数中读写的json数据库
  • 作用:无需自己建数据库
  • 具体应用:数据的增加,删除,修改,查询
  • 云存储: 可在小程序前端直接上传或下载云端文件,在云开发控制台可视化管理
  • 作用:无需自建存储和 CDN
  • 具体应用
    • 管理文件
    • 上传文件
    • 下载文件
    • 分享文件
    • ...
  • 云调用:基于云函数免鉴权使用小程序开放接口的能力,包括服务端调用、获取开放数据等能力
  • 作用: 原生微信服务集成
  • 具体应用
    • 服务器端调用,在云函数中使用云调用,调用服务器接口无需换取 access_token
    • 开放数据调用,对于返回一些敏感信息,例如数字签名秘钥,会话秘钥等
    • 模板消息推送
  • HTTP API:云开发资源也可以通过 HTTP 接口访问,即在小程序外访问,使用 HTTP API 开发者可在已有服务器上访问云资源,实现与云开发的互通

开通云开发

前提条件:

  • 预备一个没有注册过的邮箱,在微信公众平台上,注册小程序,下一步,下一步即可
  • 下载微信开发者工具

一开始直接开通小程序的云开发坏境

这种方式主要是一开始就准备用云开发,基于微信小程序提供的云开发模板进行开发,具体步骤如下所示:

  • 在自己注册的小程序后台,的设置中找到appid,填入微信开发者工具,选择云开发,下一步,就可以了的
  • 点击开发者工具右上方的云开发,按照步骤下一步下一步,开通云开发就可以了
  • 开通后,重启下微信开发者工具,右侧的开发者工具中有了云坏境的名称,表示就已经开通了的,在云控制台上可以查看一些云函数,云数据库概览等一些信息的

开发者工具中手动开通小程序云开发坏境(主要针对旧项目的小程序)

这种方式主要是对于旧项目的小程序想要切换到云开发,基于云开发的的基础能力进行二次开发

这在创建小程序工程项目时,一开始就开通云环境与只创建小程序前台,然后在工具中手动的开通云坏境,其实是一样的,后者需要手动配置一些就可以了的

  1. 设置云函数的路径

在项目根目录找到 project.config.json 文件,新增 cloudfunctionRoot 字段,指定本地已存在的目录作为云函数的本地根目录(在根目录下手动创建一个cloudfunction的文件夹,然后在project.config.json中进行配置一下),这个目录相当于于后端Nodejs,后端服务,它是可以通过终端npm安装一些第三方模块的

代码语言:javascript复制
{
   "cloudfunctionRoot": "./cloudfunction/"
}

如果你看到微信开发者工具中对应的目录出现了一朵小云的标志,则说明你的云函数目录配置成功了

2. 初始化云环境

在完成了上面的配置之后,接下来就是要初始化云函数,以便在小程序前台进行调用

在前台的微信小程序的app.js中onLaunch生命周期中初始化云开发,具体代码如下所示

代码语言:javascript复制
//app.js
App({
  onLaunch: function () {

    if (!wx.cloud) {
      console.error('请使用 2.2.3 或以上的基础库以使用云能力')
    } else {
      wx.cloud.init({
        // env 参数说明:
        // env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源
        // 此处请填入环境 ID, 环境 ID 可打开云控制台查看
        // 如不填则使用默认环境(第一个创建的环境)
        // env: 'my-env-id',
        traceUser: true,
      })
    }

  }
})

上面的这段代码在我们的微信小程序的app.js中的onLaunch生命周期中,调用云开发的init初始化命令,这样就可以在后续的生命周期内调用云开发的命令执行各种操作

3. 配置基础版本库

在进行云开发时,小程序的API更新是很快的,云开发又是集成在小程序官方的运行的环境当中的,对于一些新的API,如果想要支持的话,那么得使用较高版本的库的

只需要在开发者工具中,点击开发者工具右上方的详情,点击tab页,找到详情中的本地设置,将调试基础库的版本选择为最新的就可以了的,如下所示

(如果文章对你有用,下方鼓励一下哈)

结语

本节主要介绍的是小程序云开发,从了解到小程序是什么,到什么是云开发,云开发它提供的几大基础能力,对于腾讯云提出的这种无服务serverless开发绝对是前端开发者的春天,弱化后端,运维,运营等环节,前端的话语权将会越来越重.

相比于传统的开发模式,这种云开发必将是革命性的.

(愿你有所获)

0 人点赞