通俗解释前后端分离?

1.请问老师,什么是前后端分离技术?我本来还懂一些,但上网一查,越查越晕。能通俗的介绍一下吗?

答:顾名思义,前后端分离的核心,就是让前端开发者和后端开发者各自独立,即前端开发者只写前端,后端开发者只写后端,二者不需要太多的言语沟通,就能合作完成一个项目。

 

如何做到这一点?我认为,核心有两点:

(1)前后端开发者,均采用"REST风格"开发。简单的讲,就是发送的http请求要支持POST、DELETE、PUT、GET四种请求方式。因为这四种方式,分别对应增删改查四种操作,具体是:POST对应“增”,DELETE对应“删”、PUT对应“改”,GET对应“查”。

(2)前后端开发者,共同维护一个“数据格式”,这个“数据格式”在java中就是很常见的 实体类。以java为例,前后端共同维护的这个“实体类”,既是前端接收的格式,也是后端返回的格式,如图。

再举个例子说一下什么是“前后端共同维护的 响应格式”:我们可以定义一个Result类,如下。

public class Result  implements Serializable {
    private boolean flag ; 
    private Integer code ;
    private Object data ;//返回数据
    ...
}

仔细读Result类,它是不是可以代表任意的请求结果。即,无论你发送了什么样的请求,都可以把请求的结果(即响应)封装在Result类中,用flag表示请求成功、还是失败,用code表示请求结果的状态码(如404、500之类),用data表示请求的结果(因为data是Object类型的,因此可以存储任意后端处理好的结果数据) 。当后端把Result对象返回给前端后,前端就可以解析这个Result对象,从而将解析的结果也渲染在前端页面上。

 

不难发现,这个“Result对象”就是前后端分离的核心,即后端只需要将处理结果封装在Result对象中,不需要管前端人员;同理,前端人员也只需要根据Result的数据格式进行解析,并进行数据渲染即可,也就不用管后端人员在做什么事了。

 

以上是开发前后端分离项目的核心,但还有一个问题:数据从哪来?例如,前端人员如果真的不管后端的开发情况,那前端发送请求后,从哪里获取服务器的数据?同理,后端开发者如果真的不用理前端,那要用什么web页面来测试?参考解决方案如下:

(1)前端开发者,可以使用easymock模拟后台服务器的数据。简单讲,就是easymock可以帮你模拟一套后台服务器的假数据,供测试前端时使用。

(2)后台开发者,可以使用postman模拟前端页面。postman就是一个UI工具,可以在图形界面中,输入请求地址、请求参数、请求方式等。

 

最后一个问题:前端开发者和后端开发者共同维护的这个Result类,以及前后端需要编写哪些接口、哪些方法等API,这些描述文件用什么来编写?除了word以外,推荐使用Swagger,如图。

 

 

- 完 -

推荐阅读

答疑 | 如何优化CAP?毕业设计如何选题?

答疑 | 限流、RPC、软引用、超卖

面试官:你还有什么想问的?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值