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