00:00
好,我们来看一下,那么note JS它到底是用来干嘛的呢?如果我们用一句话来总结的话呢,那它就是可以写后端程序的这么一个技术,那后端程序呢,一般情况下我们现在都用Java来写啊,所以呢,看起来note JS呢,它就肯定PK不过Java了,它的各方面的能力呢,都没有Java强,所以呢,它为什么会诞生呢?是不是?那我们来看一下,它肯定有它的存在的意义啊啊,首先如果你是一个前端程序员的话,你如果想开发一些类似Java外B的一些简单的后端程序,而且呢,你对Java的这个入门的啊,这样的一个流程啊,还比较恐惧的话,那么恰好你会javascript,那么你就可以学习一下note JS,通过note JS呢,就可以完成一些简单的后端程序了啊,这是第一个使用的一个场景,好,第二个使用场景呢,就是啊,比较厉害了,如果你是一个架构师啊,你想部署一些高性能的服务,那么note JS也是一个非常好的选择啊,什么意思呢?
01:00
其实note JS呢,往往是作为我们的分布式项目当中的一个具体的一个节点存在的,也就是说它不单单只是一个简单的后端程序开发这么一个简简单的这么一个任务啊,它实际上是整个我们分布式项目当中的一员,那么我们来看一下现在我们啊的这样的一个图,这个图是什么呢?就是。我们在这个访问这个啊应用程序的时候啊,有可能啊,我们的这个后台是有很多微服务组成的,那么如果是微服务的话呢,比如说我们这个里面有两个微服务,这面呢就是微服务A啊,然后呢,这面呢是微服务B,那两个微服务呢,分别提供不同的功能,我们用这个五八同城为例吧,那比如说这个微服务呢,它就是二手房微服务,然后这个微服务呢,它就是求职微服务啊,那无论是二手房的这个子业务里面所提供的啊,这样的一个数据,还是求职这样的一个子业务里面所提供的一个数据,我们都需要展示在我们五八同城的首页上啊,展示展示一些二手房信息,展示一些职位招聘信息啊,那么所以呢,我们的五八同城的首页呢,就会同时向我们后端的这两个微服务呢,发起请求。
02:16
是吧?啊,然后发起请求之后呢,我们把数据拿过来之后啊,把数据拿过来之后呢,我们的这个拿到的数据呢,是在哪呢?是在我们的这个浏览器当中进行渲染的,好这面拿数据过来,然后这面呢也拿数据过来,好这面的数据和这面的数据我们要在浏览器端呢做一个渲染啊就是这样的一个流程,嗯,然后呢,其实呢,这样的话,对于我们前端工程师来说的话,他的工作量呢,稍微会大一点,为什么呢?他要分别向五八同城的呃,二手房业务和像我们的这个。啊,五八同城的招聘业务去发起两个请求对不对啊,然后发起两个请求之后呢,他要分别去处理这两个请求的结果啊,拿到结果之后呢,他还要分别把这两个请求的结果呢,展示到我们的这个页面上啊,那实际上呢,我们可以中间再加入一个层次,加一个什么层次呢?我们管这个层次呢叫BFF,什么叫BFF呢?这个BFF的概念呢,它的全称就叫做back and for foran。
03:27
简称呢就是B对吧,然后F。这个呢,就是服务于前端的后端,也就是说我们现在写的这个后端程序呢,实际上它就是为了组装前端需要的数据而存在的。啊,更深层次的,比如说访问数据库呀,访问缓存呀,啊访问这个消息队列呀,等等等等是吧,这些比较高级的内容呢,我们交给Java来做,然后Java做完了之后,一个初级的数据我们返回给谁,返回给BFF层,BFF层呢,他来负责什么呢?他来负责我们的。
04:11
二手房业务的调用,他来负责我们的招聘业务的调用,调用完了之后呢,把二手房的数据和招聘的数据呢,我们都拿到手,然后呢,在BFF层进行整合,有的时候甚至是在BFF层就把它直接渲染成一个HTML的一个字符串了,然后呢,无论是数据也好,还是字符串也好,我们整合完了之后,我们再给他发给前端,然后前端呢就直接展示就行了。所以呢,我们管这个这个层次啊,叫服务于前端的后端,那么这个工作恰好可以用note JS来做啊,用Java做比较大材小用,用note JS做是最高效最简单的,而且呢,这一部分的工作我们可以交给前端工程师来做,因为它是javascript,这个基于javascript的嘛啊,所以前端做就可以了,因为这种工作其实就是。
05:08
它的难度不太大,就工作量比较大,所以一般可能Java这边呢,就着重于处理一些一后台的一些比较复杂的业务了啊,那这一种工作呢,我们就单独把它抽取出来,专门找人做啊,所以呢,这个人呢,就叫做node JS工程师,然后这一个层次呢,叫做BFS层,明白哈,所以这个其实是note GS它的一个主要的应用场景啊,还有它最重要的要解决的问题,好,那么同时呢。其实实际上呢,我们在这个啊图当中呢,画的比较简单,还有一种场景呢,就是前端有可能还会有一个手机端。啊,手机端和PC端同时呢,都可以去调用这个BFF层,然后PC端调用的BFF层所组装出来的数据呢,肯定和手机端调用的DFF层所组装出来的数据是不一样的,因为PC端它需要的这个展示的数据内容可以很多,但是手机端由于屏幕大小的限制呢,它只能展示一部分的内容,所以呢,在这个呃,BFF层呢,我们可以专门再写一个业务,然后呢,也是去这个微服务A当中去获取数据,去微服务B当中获取数据,获取来的数据呢,咱们专门为手机端组装一个结果,然后返回给手机端,然后这面呢,是专门为啊PC端组装结果,返回给PC端,明白吧?啊所以这样的话呢,我们的整个的这个啊系统呢,就更为复杂了一些,那么我们中间的这个BFF的作用呢,显得也尤为重要了啊,所以这个呢,就是note GS的一个作用。
我来说两句