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