借Jsp來舉例,jsp就是一個典型的前後端耦合在一起的典型的計數案例
這種模式在以前網際網路不那麼繁榮,web化趨勢還不是那麼明顯的年代發揮著巨大的作用,
但是隨著社會技術的不斷加深,各種各樣的服務都web化以後,其實很多前端展示的東西都變得複雜起來了,jsp這種模板技術就沒辦法去高效的開發了,其本質原因還是因為前端那個時候沒有工程化、模組化和可複用化的思維來做。開發必然會出現各種各樣的不協調,
還有一些效率低和扯皮的問題,所以從公司專案管理的角度來看,解決這個問題的辦法就是解耦,在軟體領域中各種複雜的問題高內聚低耦合這種原則幾乎都能見效。所以前端也需要工程化、專案化的思維來做。
可以採用前後端分離的開發模式,前後端程式猿只需要提前約定好介面檔案(引數、資料型別),然後並行開發即可,最後完成前後端整合,遇到問題同步修改即可,真正實現了前後端應用的解耦合,可以極大地提升開發效率。說直白點前後端分離就是把原來的一個應用,拆分成兩個應用,一個純前端應用,專門負責資料展示和使用者互動,一個純後端應用,專門負責提供資料處理介面,前端 HTML 頁面通過 Ajax 呼叫後端 RESTful API 介面進行資料互動。
這麼說不形象,通過下面這兩張圖帶你瞭解前後端分離和傳統單體應用的區別,單體應用的結構是這樣的。
前後端分離是這樣的:
如圖所示,前後端分離就是將一個應用拆成兩個,前端應用和後端應用以 JSON 格式進行資料互動,這就是前後端分離的基本概念,目前最主流的實現方案是 Spring Boot + Vue,即後端使用 Spring Boot 框架進行開發,前端使用 Vue 框架進行開發。
前後端分離是需要成本的,尤其是你想做一個徹徹底底的前後端分離,不管是人力成本,開發成本,工具成本,部署成本其實都是不小的,如果不顧自己的實際需求,來強行前後端分離式開發,因為前後端分離如果某一點做得不徹底,它會帶來非常多的負擔,而不是便利性,
所以說並不是所有的專案都適合做前後端分離的,要看價效比,前後端分離並不是一個具體的技術問題,而是一個工程考量的問題。