一 、引入
上次谈完了前后端分离的模式,接下来分析总结一下非前后端分离模式的缺点。
1.开发效率低。
图1.1 步骤展示
通过上面的图,可以看的出每一个环节都依赖进行,可能会延长了开发周期。
2.整个团队的协作耦合度高。
环节层层依赖。如果某个环境进行了修改,其他的环境就会受到影响。
3.团队容易甩锅。
当项目出现问题之后,团队成员很容易将一些责任推到其他的环节上面。
4.难以处理越来越复杂的业务。
随着目前的业务发展趋势,业务也越来越复杂。例如,一些页面交互效果,数据处理。传统的模式很难支持这样的业务场景。通过前后端分离,前端负责对应的交互业务,后端负责数据的处理。
5.使得代码的耦合度更高。
这里可以从一种软件设计模式来分析。那就是MVC模式,模型层(M)负责数据库层面的操作,视图层(V)负责数据渲染,控制层(C)负责处理逻辑。这是一种很不错的软件设计模式,但在不做到严格规范的情况下,仍有很多的程序开发者,在控制层C输出一些视图层V的业务代码,这样的代码耦合度更高,同时也难以维护。
二、前后端分离有什么好处
综上了解了非前后端分离的弊端,但也不难分析出前后端分离的一些好处。
1.提高开发效率。
2.降低了软件设计的耦合度。不管是前端还是后端,都可以针对不同的端,实现一些工程化的东西。
3.提高了处理复杂业务的能力。后端可以只专注后端业务,前端可以只专注于前端的业务。
三、前后端分离有哪些缺点
1.团队沟通成本。
每个环节都需要保证沟通、协商好,否则很容易导致团队混乱,因此前后端分离模式对团队协调也是有着较高的要求。
2.不利于搜索引擎抓取。
因为搜索引擎看的是html源码,不能执行js,也就无法获取js动态从ajax抓的内容。
3.项目维护成本。
前后端分离,后端的代码和前端的代码都需要单独部署。在开发中也需要针对开发需求部署不同的环境。
4.增加繁杂的配置。
前后端分离,需要设置跨域一系列的其他操作。同时也会针对前后端的一些监控处理,都将会增加工作量。
四、前后端分离涉及到开发的哪些环节
所谓的前后端并不是单纯的指前端工程师负责的内容和后端工程师负责的内容之间可以独立进行。总体归纳如下几点:
1.产品设计
2.设计
3.前端开发
4.后端开发
5.测试
6.部署
这几个环节,其实很多都可以并行运行。
(1)例如,在产品设计好之后,能够具体确定哪些功能,前后端工程师可以协商接口、接口参数等需要对接的内容,同时设计师可以负责设计。
(2)当定义好了项目的一些规范后,前后端的开发人员在开发的过程中,可能会需要一些模拟数据,这时候后端开发人员并未开发出对应的接口,那怎么办呢?就可以使用mock模拟一些数据,供前端人员调用。后端人员开发完成之后,前端直接调用真实数据。
(3)在前后端开发过程中,测试人员可以针对前端人员开发的功能进行前端调试。测试人员也可以针对后端开发人员的接口进行数据调试。