云开发vx小程序

下面我们一起看一看全新的云开发模式。同样的小程序端会承载数据和文件展示,给用户去看。但是呢,这个时候如果我们采用的是云开发这种模式。小程序端是可以直接调用小程序原生的接口去操作,我们的云数据库,云函数以及云存储的。在这个操作过程中,我们无需关心这些内容到底是部署在哪里?IP是多少?谁去管理这些,我们都不需要去管。我们只需要把我们的专注度放在我们的业务上就可以。当然,

除了小程序端可以调用这些能力之外,我们通过云函数也可以直接去操作云数据库。云存储不管是小程序端还是云函数,都可以通过统一的接口去处理。云开发提供的这些能力。另外呢,云函数还提供了云调用的能力,我们可以直接通过云函数使用小程序的一些开放接口的能力。除此之外,还具有http API这种能力,可以让我们的开发者在已经有的这种服务器上去访问我们的云资源。实现语音开发的互通,这些能力通通的都包含在了小程序的云开发当中。通过云开发这种模式呢,其实很大的程度上啊,

可以释放我们开发者的手脚。其实云开发这种模式,赋予我们开发者一些更安全,更稳定的去读取数据,上传文件以及控制权限的这些能力。另外呢,像我前面提到的那些负载均衡,容灾备份等等,这些运维的工作在云开发内部也都会帮我们处理好。所以说我们的开发者只要把我们的精力放在业务的开发上就可以。当然,如果你开发的是一个全新的小程序的话。那么,整个的架构就会变得非常简单,云函数就充当了后台这样一个角色,

然后我们开发者可以直接在上面使用node去写我们的后台的逻辑。另外呢,更重要的是,在云开发这种云函数当中呢,我们可以很方便的获取到用户的像APP ID open ID这些重要的一些健全的信息。其实大大简化了小程序后台的开发量。还有一种情况,有的小伙伴会说,我已经具有了一个现成的,一个小程序。然后呢,我们一些部分的需求需要与原有的一些后端进行一些交互,那怎么办?其实也很简单,由于小程序提供了像http API和云调用等等这种能力。

然后呢?我们可以很方便的把我们的云函数作为路由,然后也可以通过我们现有的后端去跟我们云开发进行一个交互。相信通过上一个问题,大家已经对语音开发有了一个初步的认识。ok,那我们开始第二个问题,什么是service?其实从字面上意思来看,server的意思就是服务,而类似指的就是更少的。在这里呢,我们甚至可以理解为叫做无服务。说到这里的话,其实我们首先要聊一聊呃,

前端这几年的一些发展啊。其实呃,我是从09年开始工作,其实那个时候我是最早是做JAVA的,因为刚进公司的时候,其实那个时候是不分前端人员和后端人员的。刚进公司的时候,其实什么都要做。其实前端这几年的技术是发展的非常快的,不管是从前端的复杂度也好,或者说应用的这个广度也好,其实都发生了很大的变化。比如说,从复杂度上面来说,最早的时候,

其实我们最早只是HTML js和js。然后到后面呢,开始向dom操作的一些框架去延伸。比如说像之前比较火的,像j query,包括我们在公司的时候最早还用的像e叉t js等等等,从doom的话往往要发展的像mvc这种模式。再到现在的MV vm,这种模式同时也推出了很多有名的框架,对吧?比如大家说的像view啊react啊等等等。其实这些技术的一些出现啊,让前端工程师开发的复杂度的这种能力是在不断提高的。另外,从广度上来说,

其实前端也是一直在扩展的。从最早浏览器再到服务端,再到现在的各种各样的小程序。其实前端的边界也在不断的扩大。但是在这个发展过程中,其实一直有一个很深的一个隔离。这个隔离的本质其实就是物理隔离。什么是物理隔离呢?比如说前端和后端,其实它们之间就存在一个很深的物理隔离。另外,还比如说我们的手机端和我们的服务器,其实它们之间也存在着这样的物理隔离。而service其实它的作用就是用于打破这种物理隔离的。其实,

对于前端来说,后端的服务就是一个函数。函数呢,就是前端代码的一部分。前端和后端完全的融合到一个代码体系当中。所以说,当打破这种物理隔离以后,才能真正的帮助后端,确实做到了一个全站的一个概念。下面我们再看一张图。我们先看前端后端,以及我们的服务器。我们首先说一下后端的物理隔离,比如说其实每个服务器之间它们都存在这种物理隔离。我们可以通过云端化,

我们把代码上传到我们的云端的平台,这个时候呢,其实云端平台就会屏蔽我们机器之间的这种物理隔离。我们的开发者其实是感觉不到的,所以说其实有了云端化以后,我们的后端的物理隔离就会被消除。那现在其实前端和服务器之间还存在一个物理隔离,我们如何去消除呢?前端从服务器上去取数据的时候,我们目前的解决方案是什么?大家想一想。我们是不是从前端去发送一个HTTP请求,到后端去请求数据对吧?所以说其实我们现在的解决方案是通过一种这种http,这种中间的协议去打破这种物理隔离的,

但是呢s这种概念其实就可以完完全全的。解决掉这种物理隔离。大家看一下,我们可以把整个的前端以及我们云端化的部分都称为我们的service。在servlet当中,其实有一个很重要的概念叫做函数,即服务。什么叫函数,即服务。其实,当我们使用后端服务的时候,我们不需要再去关心后端的IP地址是什么,也不需要关心域名到底是什么。我们只需要像调用一个普通的函数一样去调用,那这样就可以,

所以说对于后端来说,后端的服务仅仅是一个函数。而函数呢,就是前端代码的一部分。至于这个函数到底是前端实现的,还是在后端的实现的,其实我们都不需要去关心。所以说service会打破我前面提到的那种物理的隔离,但是我们需要注意的是service这种模式并不是说是没有服务器的。其实它仍然是有服务器,只不过呢,我们这些服务器是部署在云上面的。实际上,这是一种使用服务的一种新的方法,在很多情况下,

其实这种方式比我们自己去买服务器以及运维服务器要划算的多。而且呢,这种方式其实加快了我们项目上线的一个时间,同时会降低我们维护啊,或者后期扩展啊,这样一个复杂性都会大大的降低。


这门课我们讲的内容是小程序云开发,这种开发模式,那么我们首先就需要了解一下小程序云开发模式到底是什么样的。我们需要对这种模式有一个整体的认识。所以呢,这节课程我们先一起来聊一聊小程序的云开发与server less。这节课程我会以提问的方式来讲解,开发当中我们需要去了解的一些知识,当我提出每一个问题的时候,我建议大家先把视频先暂停。然后呢,自己对这个问题有一个自己初步的想法,再然后再去看我问题,后面的这个视频,这样的话,

你的想法和我的想法之间会产生一些碰撞。当碰撞了的时候,才能得到更多的知识,另外这节课程虽然不涉及到代码层面的内容,但是这节课程讲的都是架构层面的。只有深刻的理解这些架构,我们才能对后面这个实战项目有一个更深的理解,所以这节课程非常重要,大家一定要认真听。ok,那么首先开始我的第一个问题,什么是小程序的云开发?大家先自己思考一下。当我提到这个问题的时候,我们还是要对比一下小程序传统的开发模式以及云开发模式当中,

它们到底具有什么样的差别?我们先看一看传统的开发模式。首先,小程序端是用来展示数据,给用户去看的,但是大多数情况下,这些显示的数据呢,并不是在前端界面写死的。大多数的小程序,我们都需要一个后端,然后当小程序端向后端发送请求的时候,后端去把这些数据返回给前端,用给客户去展示。当然后端可以用很多技术去实现,比如大家所熟知的像JAVA PHP no JSP等等等这些技术。

但是不管采用哪种技术去实现我们的后端。一般情况下,我们至少需要前端工程师和后端工程师两个人员去协同的去完成这项工作。而这两个工程师之间就需要去不断的沟通,去确定他们之间的接口,有经验的小伙伴一定都清楚,其实这种沟通的成本是非常高的。有的时候前后端联调的时间甚至超出自己开发的时间,这其实就导致了整个公司的开发效。或者下降。另外,由于人员的增多,其实整个的开发成本也会提高。这其实是困扰很多一些小公司的一些问题。还有一种情况,

很多小伙伴可能想独立的去开发一个完整的小程序,但是很多时候我们受限于自己的一些技术。我们只会前端,或者只会后端,所以有的时候我们会显得力不从心。当然,有的小伙伴儿说,我们不需要后端啊,我把所有东西都在前端写好,但是在小程序的开发中,其实有些功能我们是无法绕开后端的。比如说数据的读取。很多小程序中都存在大量的数据,有的时候呢,数据和数据之间还存在很多的这种关联关系的这种查询。

这种情况下,其实如果我们不借助数据库的话,是很难实现一些业务的需求的。另外很多项目我们需要对文件进行管理。有的时候我们需要对像图片啊,视频啊,文档啊等等,这些文件进行上传或者下载。这个时候其实我们也需要去借助后端的。另外,很多时候我们还会涉及到一些比较敏感的逻辑,比如说我们用户的权限管理,权限管理是非常重要的。不同的用户具有不同的权限,这些功能我们都需要在后端的实现。

当然,在传统的开发模式当中,小程序端都必须发送请求,到后台进行健全处理,同时得到相应的数据。讲到这里,很多小伙伴儿可能会说,我已经掌握了no jis这种技术,这样的话,我只要会JavaScript这种语言,就可以完成全站开发呀。是的,这个没有问题,但是我们想一想,不管我们用什么样的语言去开发后端,

其实我们都绕不开后端运维这座大山。也就是说,当我们项目开发完成上线的时候,我们还需要大量的运维的工作需要。比方说负载均衡,当我们项目的访问量达到一定级别的时候,其实这个时候我们就需要处理均衡的问题。再比如我们db的运维db,指的就是database,也就是我们常说的数据库。当我们的用户数量不断增多,数据量不断增大的时候,其实我们的数据库可能是需要扩容的,这其实都涉及到一些运维的问题。还比如说我们的网络的防护,

我们当前的部署的服务器是否安全,是否能经得住一些网络上面的攻击?都是需要我们在实际项目当中要考虑的问题。再比如说异地容灾,当我们当前这个服务器出现问题的时候,如何能保证我们用户无感知的去切换我们当前的程序,这其实都是我们在后期的运维过程中。需要考虑的问题。当然,需要考虑的问题还有很多。再比如说,当我们把后端部署在服务器上的时候,我们需要去买域名,需要去买服务器。另外呢,

这个过程当中,我们还需要备案,而且大家都知道备案的周期也会比较长,这其实都是我们需要考虑的问题。这些其实就是我们传统的小程序开发模式当中具有的一些现状。


为什么说云开发正在改变小程序的开发模式呢?其实,在云开发当中,整个小程序的前后端的逻辑,我们是在一个开发工具当中完成的。甚至不需要关心哪部分是前端,哪部分是后端。我们只需要向前端调用函数一样去理解这个过程就可以。同时,现在这个云函数也支持了本地调试。当我们调试云开发代码的时候,其实就像调试我们前端代码是一样的。我们真正的做到了前端全站技术这样的一种开发模式,所以说它其实是一个很大的更新。同时,

云开发其实具备了很多的优势。比如说首先第一个。具备快速上线这种优势。快速上线其实对于很多公司来讲是非常必要的。因为很多公司可能之前已经具备了自己的网站也好,或者APP也好。但是因为小程序现在如此之火爆,所以很多公司都想开发一款属于自己的小程序。那么,小程序云开发这种模式,就可以帮助你在最短的时间里面进行上线。第二,使用云开发这种模式,可以让我们更加的关注我们的核心业务。因为有了这种模式,

以后我们不需要再考虑说前后端要这种联调啊,沟通啊这种问题。同时呢,我们也不需要去考虑后面的一些运维的问题,我们整个的这样一个复杂性和成本都会大大的降低。第三个,其实我们可以独立的开发出一个完整的微信小程序。也就是说,我们只要有一个开发人员,就可以完成当前这种模式。而在传统模式下,其实我们一般情况下,前端工程师还需要一个后端工程师去配合,我们去完成。而在当前,

这种新的模式下,是完全不需要的,因为云开发其实提供了非常丰富的API的接口。我们通过这些API就可以很方便的实现数据的存储,文件的上传等等,这些操作其实大大提升了我们的开发效率。第四个,我们不需要学习新的语言,只需要掌握JavaScript就可以。其实我们的云函数其实就相当于是我们的no dej is,而no dej is大家也知道其实使用的语言还是我们的JavaScript。所以可以大大降低我们的学习成本。另外,我们不需要关心系统的运维。其实,

当我们真正的一个项目上线以后啊,运维其实是一个非常大的问题。当比如说像呃一些海量的数据在冲击我们的项目的时候,我们怎么能快速的调整我们系统的容量,保证我们系统稳定运行?这其实是在项目的后期运营的时候,是一个很大的问题,但是当我们使用云开发的时候,云开发可以完全去接管我们运维层面这些工作。因为云开发是一个弹性伸缩的,相当于是当我们的性能不断增加的时候,云开发可以弹性的去扩展我们的性能。另外,在云开发当中,我们的数据也是非常安全的。

因为在这种模式下,每个用户的环境都是独立的。甚至可以说是私有的,并且呢,云开发还提供了与自己的数据库,比如说你已经有个私有的数据库,我们是可以打通的,它也具备这样的能力。所以我们用户的数据都是存在自己的云开发的环境下面。我们在一定程度上是保证了用户的这个安全性和稳定性的,这个在后面我们也会讲到,包括一些数据的,一些权限的管理。那么,云开发既然这么好,

它到底提供了哪些能力呢?其实云开发的能力也是在不断的更新的。如果看过我之前轻松入门儿小程序语音开发那门儿课的小伙伴儿,其实会发现当时我讲那门儿课程的时候,其实语音开发。只具备三个基础特性。但是现在呢,云开发又增加了两个新的基础特性,我们一起看一看。首先还是云函数的能力。云函数其实就是我们在云端运行代码,这种能力同时呢,它具有了微信私有的这种协议的天然健全。我们开发者可以很方便的获取到当前登录用户,它的open ID。

然后我们只需要根据自己的业务逻辑去完成我们的业务就可以,其实我们的云函数就相当于小程序的后端的部分,大家可以这样去理解。另外呢,云开发还提供了云数据库这样一个能力。其实,云数据库和我们大家熟悉的像关系型数据库,比如像MySQL啊SQL server啊或者oracle啊是不一样的。它其实是一种no so kl的数据库,其实这种云数据库非常像大家所熟悉的这种mongo db。然后呢?我们可以通过小程序提供的接口去实现对云数据库的增删改查,这样的操作。不仅是在小程序端可以操作,其实我们在云音输入端也可以很方便的操作。

第三个技术能力是云存储。通过云存储,我们可以很方便的对我们的文件进行上传啊,下载啊,这种方式同时呢呃,我们通过云开发这样一个控制台。可以可视化的去管理我们当前的文件。下面我们看一看云开发当中提供了两项新的一些技术能力。云调用能力什么是云调用?其实,它是基于云函数的,我们可以通过它实现一些很方便的去调用小程序,一些开放接口的能力。比方说,在我们当前这个项目的时候,

我们通过云调用可以很方便的实现我们模板消息的推送。也就是说,我们通过小程序可以给当前的微信的用户推送消息。另外,比如说我们可以通过云调用,可以很方便的去调用一些腾讯云提供的一些开放接口,比如一些AI的一些智能服务。或者说,对于一些内容的一些安全的检测,这些都是可以通过云调用,很方便就可以实现的,这个我们在后面的项目当中,大家也会看到它有多么的方便。另外,现在的云开发还提供了这种http API,

这种能力,它的作用其实就是比如说当前我们已经具备了一个现成的一个项目。然后我们想通过这个现成的项目去调用我们云开发这样能力的时候,我们只要通过这个http API就可以实现我们原有的项目。和云开发之间这样打通,这样一个能力也是很方便的。OK,通过这节课程的学习,相信大家对小程序云开发已经有了一定的认识,同时呢,对servlet s这种模式也有了一些更深的了解。具有了这些知识储备以后,可以让我们更好的去开发我们后面的实战项目,所以说这节课的概念希望大家反复的去看,一定要自己真正去理解才可以。

好的,那我们下节课再见。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值