🤔🤔🤔前后端分离模式的思考🤔🤔🤔

真正接触前后端分离模式也就几个月的时间。本文属于自己对前后端分离模式的一些总结,主要来源于针对之前的后端做数据渲染与分离模式的一些对比。近期会针对一些常见的开发模式做一些分享,如果对你有帮助,给个关注吧!!!

什么是前后端分离

前后端分离从端口划分就是将浏览器、客户端分为前端,提供真实服务的软件就成为后端。从开发语言的角度划分后端的编程语言和前端的编程语言,例如Java是做后端真实数据服务的,JavaScript、HTML是做前端业务数据的展现与用户行为操作的。

为什么会出现前后端分离

A.为什么会出现前端和后端分离模式,这得从有前后端分离开发模式之前的开发模式说起。我们先看下面两张图。

第一张图是非前后端分离。

1.首先,我们通过图片可以看出,一个项目的开始从产品经理,其次是设计工程师,其次是前端开发工程师……最后才是运维工程师进行项目部署。这样一个项目才算的上真正的开发完成了。

2.这样的开发模式全程是一个串行的模式,从外观就有点像一条龙服务的模式,后者依赖于前者。用编程中的一个词语就是,高藕和。
3.

第二张图是前后端分离。

1.首先,我们通过这张图片可以看出,一个项目的开始同样是从产品经理,接着就是设计工程师负责。

2.最重要的一点,我们看设计工程师在负责的同时,后端工程师和前端工程师都在同样的进行开发,这样三者是处于并行进行。

3.然后设计工程师设计完之后,交付给前端工程师,后端开发工程师完成之后可以和前端工程师做对接。

4.这三者完成之后,接下来就是测试工程师,最后同样的是运维工程师负责。这样一个项目才算的上真正的开发完成了。

5.通过这种模式,我们不难看出,在产品经理完成之后,不再是单独的设计工程师完成之后交给前端工程师,然后在交给后端工程师,而是三者可以处于并行的一个状态。

B.上面谈完了,我们接下来分析总结一下非前后端分离模式的缺点。

1.开发效率低。

通过上面的图一,我们看的出每一个环节都依赖进行,难免延长了开发周期。

2.整个团队的协作耦合度高。

环节层层依赖。如果某个环境进行了修改,其他的环境就得收到影响。

3.团队容易甩锅。

当项目出现问题之后,团队成员很容易将一些责任推到其他的环节上面。

4.难以处理越来越复杂的业务。

随着现目前的业务发展趋势,业务也越来越复杂。例如,一些页面交互效果,数据处理。传统的模式很难支持这样的业务场景。通过前后端分离,前端负责对应的交互业务,后端负责数据的处理。

5.使得代码的耦合度更高。

这里可以从一种软件设计模式来分析。那就是MVC模式,模型层(M)负责数据库层面的操作,控制层(C)负责处理逻辑,视图层(V)负责数据渲染。这是一种很不错的软件设计模式。但在不做到严格规范的情况下,仍有很多的程序开发者,在控制层C输出一些视图层V的业务代码,这样的代码似的代码的耦合度更高,同时也难以维护。

前后端分离有什么好处。

综上B点弊端,我们不难分析出前后端分离的一些好处了。

1.提高开发效率。

2.降低的软件设计的耦合度。不管是前端还是后端,都可以针对不同的端,实现一些工程化的东西。

3.提高了处理复杂业务的能力。后端可以只专注后端业务,前端可以专注于前端的业务。

前后端分离有哪些缺点

1.团队沟通成本。

每个环节都需要保证沟通、协商好,否则很容易导致团队混乱,因此前后端分离模式对团队协调也是有着较高的要求。

2.不利于搜索引擎抓取。

因为搜索引擎看的是html源码,不能执行js,也就无法获取js动态从ajax抓的内容。

3.项目维护成本。

前后端分离,后端的代码和前端的代码都需要单独部署。在开发中也需要针对开发需求部署不同的环境。

4.增加繁杂的配置。

前后端分离,需要设置跨域一系列的其他操作。同时也会针对前后端的一些监控处理。都无疑增加了工作量。

前后端分离涉及到软件开发的哪些环节

所谓的前后端并不是单纯的指前端工程师负责的内容和后端工程师负责的内容之间可以独立进行。总体归纳如下几点:

1.产品设计

2.设计

3.前端开发

4.后端开发

5.测试

6.部署

这几个环节,其实很多都可以并行运行。

1.例如,在产品设计好之后,能够具体确定哪些功能,前后端工程师可以协商接口、接口参数等需要对接的内容,设计师可以同时负责设计。

2.当定义好了项目的一些规范,前后端的开发人员在开发的过程中,可能会需要一些模拟数据,这时候后端开发人员并未开发出对应的接口,那怎么办呢?就可以事先使用mock模拟一些数据,供前端人员调用,后端人员开发完成之后,前端直接调用真实数据。

3.在前后端开发过程中,测试人员可以针对前端人员开发的功能进行前端调试,例如UI还原、用户交互缺陷等。测试人员也可以针对后端开发人员的接口进行数据调试。

4.最后运维工程师在前端和后端工程师开发过程中,可以针对前端的环境进行一些列的搭建,也可以针对后端的环境进行一系列的搭建。待项目开发、测试完成就直接部署,而不是等到开发、测试完成之后才来从0开始部署。
> 本文可转载,需注明出处(公号:卡二条的技术圈)

本作品采用《CC 协议》,转载必须注明作者和本文链接

卡二条

讨论数量: 2
cnguu

问:为什么会出现前后端分离?

答:×闲得蛋疼

  √主要是为了增加就业岗位。

1个月前 评论

大酒店:经理,服务员,厨师,

小饭店:服务员是厨师也是老板

1个月前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!