前後端的分離與不分離
随着不同終端的興起,對開發人員的要求越來越高,純浏覽器端的響應式已經不能滿足使用者體驗的高要求,我們往往需要針對不同的終端開發定制的版本。
為了提升開發效率,前後端分離的需求越來越被重視,前端主要負責頁面的展現和互動邏輯,後端主要負責業務和資料接口,同一份資料接口,我們可以定制開發多個版本。
前後端不分離:
在之前的開發方法,php代碼寫在HTML中,不存在純粹的PHP檔案和HTML檔案,這就是前後端的不分離,也就是php和HTML你中有我我中有你。
而在前後端不分離的應用模式中,前端頁面看到的都是由後端控制,由後端渲染頁面或者重定向。
也就是後端需要控制前端的展示,前端與後端的耦合度很高,請求的資料互動如下圖:
例如:
1、前端工程師對php代碼讀不懂,php工程師對css等内容也不熟悉。
2、開發效率會大大降低,比如前端寫好靜态demo,後端翻譯成VM模闆,也比如直接基于後端環境的開發,那樣配置和安裝使用都很麻煩,而且前端還是要寫VM,依賴後端資料,效率依然不高。
3、前端能力發揮受到局限,比如性能優化,如果性能優化隻在前端做空間非常有限,于是我們經常要與後端合作,但是由于後端的架構限制,我們很難來優化性能。
最後,發現隻有做到真正的前後端分離,才能夠真正的徹底的解決以上的問題。是以後來就有了前後端分離。
前後端分離:
前端:負責View(視圖層/做HTML頁面的展示)和Controller(邏輯層/書寫業務邏輯)層。
後端:負責Model(資料層/資料的增删改查)層。
在前後端分離的應用模式中,後端僅傳回前端所需的資料,不再渲染HTML頁面,不再控制前端的效果。
使用者看到什麼樣的效果,從後端請求的資料如何加載到前端中,都由前端自己決定,後端僅僅需要提供一套邏輯對外提供資料即可,并且前端與後端的耦合度相對較低。
在這種模式中,我們通常将後端開發的每個視圖都成為一個接口,或者API,前端通過通路接口來對資料進行增删改查。
對應的資料互動如下圖:
前後端分離的好處是什麼?
1、為優質産品打造精益團隊
術業有專攻,通過前後端分離,讓前後端工程師隻需要專注于前端或者後端的開發工作,培養前端工程師獨特的技術特性,然後建構出一個全棧式的精益開發團隊。
2、提高工作效率,分工更加明确
前後端分離的工作流程可以使得前端專心前端,後端關心後端,兩者開發同時進行,提高工作效率,頁面的增加和路由的修改也不必再去麻煩後端,開發更加靈活。
3、局部性能提升
通過前端路由的配置,我們可以實作頁面的按需加載,無需一開始加載首頁便加載網站的所有資源,伺服器也不再需要解析前端頁面,在頁面互動及使用者體驗上有所提升。
4、增強代碼的可維護性 前後端分離後,應用的代碼不再是前後端混合,隻有在運作期才會調用依賴關系,并且分層明确,應用代碼變得整潔清晰。
最後:
總的簡單來說:前後端分離主要就是将資料操作和顯示分離分離出來,前端專注做資料顯示,通過文字、圖檔或者圖示等方式讓資料顯示出來,後端專注的做資料的操作。
前端把資料發給後端,然後後端對資料進行修改。
而後端提供接口給前端調用,來觸發後端對資料的操作。
作者:Malb
部落格園文章位址:
cnblogs.com/-Bloom/p/10260824.html
閱讀更多
- 前後端分離實際容易産生的問題
- 奶爸程式員的“育兒”心得
- [簡單改造] 讓你的部落格園煥然一新
- 【大話微服務】漫談服務熔斷、服務降級相關理論
- 迄今為止把同步/異步/阻塞/非阻塞/BIO/NIO/AIO講的這麼清楚的好文章