前后端分离

Posted by ONE on April 15, 2018

前后端分离

什么是前后端分离

  • 前后端分离,顾名思义,直接的想法是:前端处理视图层的显示、逻辑等等与用户交互的开发环节,后端处理用户交互产生的响应和数据处理这个开发环节。用MVC模型来说,就是前端负责View和Controller层,后端负责Model层,业务处理\数据。

为什么要使用前后端分离呢?

  • 首先是使用场景问题。AJAX迎来的SPA时代,这种单页刷新应用要求比较高的性能,而前后端分离,在开发层面,能够极大提高开发效率,降低开发成本和前后端耦合度,降低整体代码的复杂程度,这无疑是程序员的福音。对用户而言,前后端分离能够提高用户体验,更加友好,网页加载速度也能提高。由此看来,前后端分离真是一举两得,创世之举啊!实际上,就开发层面,前后端的意义十分重大。
  • web1.0时代,开发人员大多是3-5人做一个小型的应用开发,那个时候互联网也不是很普及,一个小型应用需要的服务,不像目前那么复杂。到后来,网站逐渐兴起,用户一朵,services请求、数据量激增,不可能单纯依靠原来的网站去满足这样的需求了,网页的制作、变革、性能也进入瓶颈。而对开发人员来说,沉重的开发任务,如果不提高效率,那就是坐以待毙。所以,随着ajax、angularJS、REST、nodejs等框架和模型的兴起,前后端分离的开发方式受到青睐。
  • 另外,对于现今的时代,前后端已经出现了比较大的分化和不同,尽管全栈工程师有很多,但前后端仍然是一个各自占了一个大头。而假设我们采用前端、后端这样的工作模式,必然会考虑到一个问题,如果说前端必须依赖后端处理请求,那么前端在开发时期就必须等到后端完成了才能调试,无法做到前后端独立,这种开发肯定是很让人头疼的。那有没有一种方法可以方便我前后端的独立开发、协调合作呢?那就是找一个中间载体:Server.根据接口构建一个Server。前端开发期间,向这个Server发送请求,而不是直接向后端发送请求,这样,前端无需依赖后端开发。前端有模拟数据可以调试,等到前后端都开发完成了,再改下配置,前后端连接调试就行了。
  • 讲到这里,我们也可以大概总结一下前后端分离的优点。

前后端分离的优点:

  • 前后端分离的最终目的是提高工作效率。
  • 前后端分离的优势:
    1. 彻底解放前端。
    2. 提高工作效率,分工更加明确。
    3. 局部性能提升。
    4. 降低维护成本。
    5. 易于前后端进行前期测试

开发步骤

  • 根据功能制定前后端接口
  • 根据接口设立Mock server(中间服务器)及部署
  • 前后端独立开发,前端获得服务器模拟数据调试
  • 前后端开发完毕,前后端连接调试(前端修改配置,向后端发送请求而不是Mock Server)