1.序言

最近给一位即将毕业的同学做了一个毕设(需求是一个小程序),最开始我是使用自身最为熟悉的语言(Java) 进行编写的后端接口。然后做了几天,哪怕最熟悉,但是从搭建基础到创建各种工具类,写配置啊等等加上小程序UI一起耗时三天。三天里进度还是刚开始写API接口的地步。然后这位同学就带着质疑问我 “你不会云开发嘛! 你到底会不会开发呀”。这下我也懵了,因为我确实不会,我也就想着使用自己最熟悉的对吧。同时说着我也去了解了以下云开发,以下是云开发的一个官方文档,简单易懂,有兴趣的同学可以去看看。

https://docs.cloudbase.net/quick-start/create-env

秉承着自身人脉不广的情况下,想多结交一些开发同学的我来说,我认为我应该服务至上,加上他说我到底会不会开发,我破防了,我一定要给你弄成你想要的样子一😡。我看了大概半小时文档,就说"包在我身上"、“我给你改云开发”。然后因为这玩意是付费,刚好这位同学也有账号,就用的他自己的。搭建的话,根据文档跳转腾讯云,未开通过可以直接免费使用一个月。
在这里插入图片描述
开通后需要创建CMS应用套件。并且关联微信公众平台,然后会提供你一个https地址,能访问,能登陆就是开通成功。
在这里插入图片描述

我自己就不开通去给大家演示了(多一个月免费使用成本还是很香的)。

注意: 右上角有一个使用云开发控制台2.0版本的开关,开启后就是使用云开发V2版本,不开启就是V1版本,V2版本出来多久我不知道,但是没V1版本完善这也是自然的。V2版本后续只会更强,但是可能更新某个功能会需要你删除模型(后续会说到,反正很重要)才能使用的功能也有可能。如果是学习的话随便那个版本都可以,如果是商业使用,我建议V1版本

2.初识云开发

以下是官网介绍。
在这里插入图片描述
总而言之优点如下:

  1. 无需你再去自己搭建服务端,数据库等
  2. 节约人工成本
  3. 开发快速
  4. 云授权、云支付、微搭(云搭建界面)等等
  5. 稳定版本V1,目前正在更新版本V2(听说更强大)

缺点:

  1. 收费(不然我也不会舍不得自己那免费一个月的试用了)

价格文档查看 https://cloud.tencent.com/document/product/876/75213
如果是学习官方也推荐是按量计费,按月的话就怕像很多同学买服务器一样,买了放一边也不用等特殊情况。

3.环境搭建

使用前不教同学们如何新建小程序了,这个下载一个微信开发者工具就可以直接创建小程序、公众号、小游戏项目。使用起来在我的认知看来是一个挺简洁、简便的工具的。
云开发不仅使用起来方便,就连配置都很简单。一点儿也不繁琐。
创建项目选择小程序之后选择云开发(选择了云开发就不能使用测试号,选择了云开发就必须小程序的真实appId,真实appId必须绑定你这个微信开发者工具所登录的微信用户的一个是一个有开发者权限的成员),最后不选择模板进入到项目 找到 app.js 文件

App({
  onLaunch() {
    wx.cloud.init({
      env: '填写你的云开发ID'
    });
})

就填写一个这个云开发ID就完事了,然后云开发ID是什么呢?因为在你开通云开发的时候关联了微信公众平台,微信公众平台你的账户又是开发者的情况下是可以直接看到云开发ID的。在哪里看呢?
腾讯云云开发界面可以看到的。
然后在微信开发者工具中的左上角有个云开发选项
在这里插入图片描述
点开后右上角有个设置按钮打开后就是如下样式
在这里插入图片描述
就是这个环境ID,填写进去app.js文件中即可愉快的写代码了。

4.正式使用

这段可以配合以下微信官网文档食用
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html
其中有云数据库,云函数,云存储的使用,使用起来真的是太方便了。

上面提到的cms内容管理是什么呢?类似于一个数据库可视化管理,里面可以创建模型,模型就等于是一个数据库。模型中还可以创建模型,就等于是表模型。如果库模型删除,当中表模型也会被删除,这就是我不建议使用V2的原因。但是哈,模型是可以导出的🙄。在删除前导出再导入也没啥太大问题。
在CMS内容管理中创建的模型会在云数据库上同步创建一个一模一样的,哪怕你在可视化中新增数据都是可以到达云数据库的。所以由此可得 CMS内容管理 = 云数据库 。很容易理解吧。因为他就是一个可视化的界面。方便你操作。

具体使用的如下,比如在pages中创建一个界面

const db = wx.cloud.database();
const xxx = db.collection('表模型');

// 随便一个方法 比如查询表模型所有数据
xxx.get().then(res => {
	//查询成功后就会回调到then
	console.log(res);
}).catch(err => {
	console.log(err);
})

看到上面同学们有感觉到很快速嘛? 你可能会觉得"就这?"。但是无需再写后端API这一点我感觉就已经很强了,同时居然还会打印成功 or 失败日志。真的我😭。等于是你也不需要再去写频繁的 console.log() 打印了。还会告诉你那个字段建索引比较好,建索引也很简单。同时你创建的数据库还是有权限的(你自己创建的数据你自己才可以读取)。如果你想修改权限在云开发中就可以更改,基本上开发全在一个工具中,不需要切换来切换去的了。有会mongdb的同学呢写这样的类似SQL语法会更快

优点这么多,我真的也很想用,但是我自己还没有任何规划自己想做的东西是什么思想上的巨人,行动上的懒人。一个大佬说的,我觉得说的就是我了。

先不要激动,缺点也是有的。但是这个缺点我觉得反而是优点。就是查询哈,只会查询20条数据,就是不管你写不写分页,最多就是20。碰到一些小白可能会觉得是缺点,因为某些人(包括我自己)做项目都是想一下全部查询出来,不管你卡不卡顿之类的。但是这个云数据库查询给你做了限制。自身就必须去想办法。结合小程序需求来讲一般列表都是滚轮形式。

在这里插入图片描述

可以使用微信小程序内置的 scroll-view 组件去实现滑动到底部后分页查询。这样就可以解决查询问题,同时还可以避免全表查询。还可以在查询前查询总数 / 20 然后循环查询所有数据(循环一次会渲染一次界面,不太友好,但是也算小数据量情况下的解决方案吧。)

5.使用感受

感受仅我个人而言的话,因为我是给别人做毕设,然后他时间比较匆忙,大概有个12天左右时间开发。前面使用Java,就浪费了三天,加上五一放假,我母亲来深圳这边,我也略显消极态度,就糊弄了一下弄了一天,第二天告诉我要云开发,然后看文档加上放假(五一基本上没动)。然后假期后的一天我查资料看具体如何使用并且让这位同学给我开发者权限 + 云开发版本切换折腾一天。时间上就还剩下个六天左右。我用四天的时间做完了。这还是我第二次开发小程序。离第一次开发小程序有两年多了。我并不是说我开发快,而是使用的工具真的很快。页面组件copy,加上后端都不用自己写了。自然而然就快了,做完后我也感叹速度。下面是上传代码图。
在这里插入图片描述

提交过18次,但是实际更换云开发以来我是从5.7号正式开始使用云开发的。

我在推荐一个小程序 UI组件也特别快。最开始使用的是TDesign,腾讯刚推出不久的UI。使用上感觉可以,提issue解决问题也快速,我预判是一个未来的好UI。支持react、Vue等。然后我又在开发者群中得知了color UI组件,可能很多小伙伴都听过,但我是第一次知道,因为我开发小程序比较少嘛。不用不知道,用了都说香。

优点

  1. 原生组件UI
  2. 方便开发者快速修改样式

缺点

  1. 无官方界面,必须从github上找源码导入到微信开发者工具中使用
  2. UI不是很多。但是都已经够用了。

下面是使用的链接,感兴趣的小伙伴可以去看一下
https://blog.csdn.net/LookOutThe/article/details/120720512

6.结语

非常感谢大家看完。这是我第二次记录CSDN,也算是今日工作之余的打发一下时间。内容上相比上次我觉得稍微好那么一丢丢吧。很多地方也需要放图片的我都没有放(那个做毕设的同学自己的云开发账号,我给他做完后我就没有开发者权限了,所以很多地方我没法截图。真实情况就是我云开发都是被禁用状态。很多图都没有,只能依靠文字描述,希望各位能够看得懂)。

最后,如果觉得有哪里需要改善 or 哪里说错的地方可以在评论区 or 私信留言,我看到后也会及时调整!

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐