传统系统架构:
1 前台工程师负责编写HTML页面,完成前端页面设计。
2 后端工程师使用模板技术将HTML页面代码转换为 JSP 页面,同时内嵌后端代码 (如Java);
前后端强依赖,后端必须要等前端的HTML开发好才能套转换成JSP。如果需求变更,前端HTML要改,后端
JSP也要跟着变, 这是件紧紧牵绊的事,使得开发效率降低。
3. 产品交付时,要将前后端代码全部进行打包,部署到同一服务器上,或者进行简单的动静态分离部署。
前后端分离架构:
- 前后端约定好API接口&数据&参数
- 前后端并行开发
前端工程师只需要编写HTM页面,通过HTTP请求调用后端提供的接口服务即可。
后端只要愉快的开发接口就行了。
无强依赖,如果需求变更,只要接口和参数不变,就不用两边都修改代码,开发效率高。 - 除了开发阶段分离、在运行期前后端资源也会进行分离部署。
前后端分离已成为互联网项目开发的业界标准使用方式。传统的前后端混合开发模式,虽然久经考验,到现在依然还是能够支撑起应用的开发。但是放眼未来,社会分工更加精细化,前后端分离开发的精细化也是必然趋势。并且前后端分离会为以后的大型分布式架构、微服务架构、多端化服务(多种客户端,例如:浏览器,安卓,IOS, 车载终端等等)打下坚实的基础。
具体前后端分离是如何实现的呢?举例:
在前端和后端开发之前,会有一个api开发文档,不管是前端还是后端都会基于这个aoi文档进行开发。
前台就只需要开发它的html页面即可,因为要渲染数据,前台开发工程师就需要参考api开发文档,比如这个api开发文档有一个功能要调用emp/list方法获取列表数据,同时这个方法要传入什么参数,返回什么数据都会写。对应的前台发送ajax请求为文档上的请求,参数返回值都基于文档,最后在将返回的数据渲染到页面当中。那没有经过真正的后台处理,数据是如何返回的呢?
mock.js就能处理这种问题。模拟接口数据,不需要等待后台开发人员开发的接口进行测试。
而后台开发人员就仅仅关注后台接口的开发,而这个接口开发也是需要参考这个api开发文档,后台开发工程师就不需要关注,接口返回的数据如何渲染到html页面当中。
当前后端都开发完成之后,就可以进行联调。最终上线的时候,前台部署全台项目,后台部署后台项目。