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