什么是前后端分离与前后端不分离
我起初认为前后端分离是,在软件开发过程中前后端分工就叫做前后端分离,其实是前端所有用到的数据都是后端通过异步接口的方式提供的,前端只管页面的展示及效果。
前端和后端不分离的时候,前端的页面也是由后端控制渲染的,两者的耦合度非常高。在业务逻辑复杂的系统里,我们最怕维护前后端混杂在一起的代码,因为没有约束,M-V-C每一层都可能出现别的层的代码,日积月累,完全没有维护性可言。这个时候出现了前后端分离这种模式,虽然前后端分离没办法完全解决这种问题,但是可以大大缓解。
那该怎么做到前后端分离呢?
前端:负责View和Controller层。
后端:负责Model层,业务处理/数据等。
试想一下,如果前端掌握了Controller,我们可以做url design,我们可以根据场景决定在服务端同步渲染,还是根据view层数据输出json数据,我们还可以根据表现层需求很容易的做Bigpipe,Comet,Socket等等,完全是需求决定使用方式。
前后端分离的好处有哪些?
首先,前端代码中不再需要嵌入后端的代码,降低了前后端的耦合性,也使前端代码的可读性大大提高了。
其次,前后端分离使得双方的任务更加的明确,并且开发时可以前后端并行开发,使得开发效率更高,也更灵活。
最后,因为双方的分工明确,代码可读性提高,也降低了后期的维护成本
小结:
我觉得前后端分离的好处很多,但是也不一定适合全部的情况,具体前端和后端是否分离还是要视情况而定。