主要内容:

  1. 前后端分离的本质?
  2. 前后端分离的历史来源?
  3. 如何从不同角度理解前后端分离?

可以从Web开发的起源讲起,在以前诸如spring、vue这些工程化框架出现之前,比如说jsp这样的技术,前端在写好html代码后将其改成模板等待后端的代码,前后端可以说是耦合在一起的,降低了开发效率。
后来,随着前后端逐渐工程化,像spring、vue、react这样的工程化框架出现才带来了前后端分离的热潮。
因此,从这里可以说前后端分离技术并不是一个技术问题,而是一个工程考量问题。
如果前后端交互方式转变成为纯粹的数据(或者说JSON)交换,就会方便很多
从项目开发的角度来讨论前后端分离:

  1. 设计阶段:前后端交互的灵魂-----接口
  2. 开发阶段:前后端只需要按照先前的接口约束来进行各自的开发,避免了一些不必要的扯皮,并且各自封闭,前端不知道后端用了什么技术,后端也不知道前端用了什么技术,因为两者最后都是通过统一规范的数据来进行交互,和项目本身的结构体系毫无关系
  3. 测试阶段:后端的接口可以提供给多种不同类型的前端使用,有了前后独院分离,两者完全可以分开来测试,比如说前端的mock模拟生成数据供前端测试,后端的swagger对controller层接口的可视化操作这些组件的出现方便了联调,在前后端分离之前,联调过程变得很复杂,尤其是没有做热部署的Java工程,改视图还需要重启Tomcat,影响前端联调效率
  4. 部署上线阶段:有了前后端分离,上线发布也可以按各自不同的版本规划来