小程序-云开发基础

前言

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

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

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

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

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

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

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

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

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

小程序是什么?

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

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

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

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

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

所谓的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安装一些第三方模块的

{
   "cloudfunctionRoot": "./cloudfunction/"
}

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

云坏境显示.png

2. 初始化云环境

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

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

//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页,找到详情中的本地设置,将调试基础库的版本选择为最新的就可以了的,如下所示


版本库的选择.png

总结

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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容

  • 2016、2017,发生了太多狗血剧情,以至我自己都觉得在坐山车。先是遭遇婚变、怪病袭来全身不会动弹、抑郁成疾活着...
    楚楚云儿阅读 477评论 2 5
  • 昨天第一次尝试在上午完成了一千字的写作,因为发现完成这个写作之后一整天的状态都比较好,所以打算剩下的八篇文章用上午...
    幻想家Melon阅读 328评论 0 0
  • 是时间 也是枯叶 时间如白驹过隙 抓不住它的身影 枯叶如一片轻舟 装下了满满的青
    卓西阅读 91评论 0 0
  • 一大早,阳光就透过窗照进来,光芒散开一圈,留在我的脸上。躺在床上的我正回味着夜里做的梦,走到大山里就迷失了,山的地...
    陈汐年阅读 1,059评论 11 36