前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序-云开发基础

小程序-云开发基础

作者头像
itclanCoder
发布2020-10-28 16:43:58
2.8K0
发布2020-10-28 16:43:58
举报
文章被收录于专栏:itclanCoderitclanCoder

撰文 | 川川

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开发绝对是前端开发者的春天,弱化后端,运维,运营等环节,前端的话语权将会越来越重.

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

(愿你有所获)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 itclanCoder 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 小程序是什么?
  • 小程序的传统开发模式
  • 云开发模式
  • 云开发提供了几大基础能力
  • 开通云开发
相关产品与服务
云函数
云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档