我起初認爲先後端分離是,在軟件開發過程當中先後端分工就叫作先後端分離,實際上是前端全部用到的數據都是後端經過異步接口的方式提供的,前端只管頁面的展現及效果。前端
前端和後端不分離的時候,前端的頁面也是由後端控制渲染的,二者的耦合度很是高。在業務邏輯複雜的系統裏,咱們最怕維護先後端混雜在一塊兒的代碼,由於沒有約束,M-V-C每一層均可能出現別的層的代碼,日積月累,徹底沒有維護性可言。這個時候出現了先後端分離這種模式,雖然先後端分離沒辦法徹底解決這種問題,可是能夠大大緩解。json
那該怎麼作到先後端分離呢?後端
前端:負責View和Controller層。前後端分離
後端:負責Model層,業務處理/數據等。異步
試想一下,若是前端掌握了Controller,咱們能夠作url design,咱們能夠根據場景決定在服務端同步渲染,仍是根據view層數據輸出json數據,咱們還能夠根據表現層需求很容易的作Bigpipe,Comet,Socket等等,徹底是需求決定使用方式。url
先後端分離的好處有哪些?spa
首先,前端代碼中再也不須要嵌入後端的代碼,下降了先後端的耦合性,也使前端代碼的可讀性大大提升了。blog
其次,先後端分離使得雙方的任務更加的明確,而且開發時能夠先後端並行開發,使得開發效率更高,也更靈活。接口
最後,由於雙方的分工明確,代碼可讀性提升,也下降了後期的維護成本ip
小結:
我以爲先後端分離的好處不少,可是也不必定適合所有的狀況,具體前端和後端是否分離仍是要視狀況而定。