、前后端分离是什么?
前后端分离是一种把项目工程化和模块化的思想,通过将前端和后端独立出来进行开发,使得开发人员对自身的职责更加明确,能有效地提高开发效率。正所谓术业有专攻,如果能专心去做好一个方面的事,那前后端分离之后对于个人的提升是非常有帮助的。当然如果是企业,就得考虑很多方面,不能为了前后端分离而去搞前后端分离。传统的开发协调模式为:
前端先写一个静态页面,然后让后端去套模板。静态页面可以本地开发,前端工程师也无需考虑业务逻辑,只需要根据设计图实现View即可。缺点是耦合性高,让后端去套模板,后端工程师就得熟悉掌握html和css等前端知识,这样学习成本高。
前端根据后端的服务,直接写模板。缺点是前端编写过程中很依赖后端,如果当后端没写完的情况下,前端几乎没法干活
这两者的共有的缺点都是前端无法单独调试,而且前端或后端工程师难免会遇到不是自己领域里的代码,导致开发效率降低。
2、在软件开发过程中的体现
软件开发一般有四个步骤,设计、开发、测试、部署。真正的前后端分离应该渗透到每一个阶段当中。
设计阶段:系统设计和接口设计,规定好统一的接口请求方式,数据类型和数据格式。
开发阶段:前后端各自按照实现约定的接口独立去开发,写代码。
测试阶段:前后端独立可测试, 前端:页面,跳转,数据展示,输入,传参等;后端:保证数据接口的提供,数据格式,校验,异常,数据验证和一致性问题等,前后端都可以解决跨域问题。
部署阶段:前后端项目独立可部署。
3、要不要做前后端分离
从上面的阶段分析可以看出前后端分离的成本是不小的。如果是一个真正的前后端分离开发,那对人力成本、开发成本、工具成本和部署成本的要求都很高,此时如果不考虑项目的实际需求,即使小团队小项目也要跟这波热潮,强行进行前后端分离式项目开发,那样的性价比太低,得不偿失。总而言之,前后端分离只是一种在项目管理上的工程考量,做不做其实还是得看实际的需求来下定论。最最主要的还是要制定好相应的规范,然后再去前后端分离开发,这样子效率也会比传统模式高很多。
4、前后端架构
不分离的架构模式
客户端–》后台应用
前后端分离架构
客户端–》前端–》Ajax–》Restful后端数据接口(数据交互以JSON格式进行)
5、热门的前后端系统设计
Spring Boot(后端应用) + Vue(前端应用)
后端:Spring Boot + MyBatis + MySQL + …
前端:Vue + Element UI + …
接口管理:Swagger / YApi
项目管理:Maven(依赖管理) + Git(版本管理)
最后总结一下,还是得根据自身的业务来考量是否要采用前后端分离的开发模式。如果你是做自己的个人项目,还是推荐你专精一端,当然学生时间多,可以多玩玩,当个全干高手。在公司的话,公司想要怎么做就怎么做吧,除非你是老大,可以随意掀桌子 _。