目錄
爲什麼要前後端分離?
以Java Web項目爲例,在傳統的開發模式中,前端代碼(Html、js、css)寫在JSP中,甚至JSP中嵌入Java代碼。當用戶訪問網站時,頁面數據也就是Html文檔,由Servlet容器將jsp編譯成Servlet,然後將jsp中的html,css,js代碼輸出到瀏覽器,這個過程需要經過很多步驟,才能響應用戶的請求。這個過程非常繁瑣,效率低下,直接造成了頁面響應速度慢的效果。從項目維護的角度上,傳統的開發模式,前端代碼和後端代碼耦合在一起,導致代碼混亂不堪,極大的降低了項目的可維護性,增加了維護成本。從開發角度來看,研發人員在開發過程中,不僅要設計後端架構還要兼顧前端展示,導致開發效率低下,延長開發週期。揚長避短,爲什麼不讓專業的人去做專業的事?
傳統的開發模式下的系統數據交互圖:
傳統開發模式的劣勢和不足:
- 開發出的軟件響應速度慢,質量差,用戶體現差。
- 前後端嚴重耦合,代碼混亂,可維護性差。
- 研發人員前後端兼顧,開發效率低下,研發週期變長。
爲了解決傳統開發模式中的這些病痛,前後端分離框架應用而生。
什麼是前後端分離?
在前後端分離的開發模式中,後端僅返回前端所需的數據,前端負責渲染HTML頁面,後端不再控制前端的效果,用戶看到什麼樣的效果,從後端請求的數據如何加載到前端中,都由前端自己決定,後端僅僅需要提供一套邏輯對外提供數據即可,並且前端與後端的耦合度相對較低,在這種模式中,我們通常將後端開發的每個視圖都成爲一個接口,或者API,前端通過訪問接口來對數據進行增刪改查。總結一句話,後臺負責提供數據,前端負責數據展示,職責分離,分工明確。
對應的數據交互如下圖:
前後端分離的優缺點?
- 爲優質產品打造精益團隊
術業有專攻,通過前後端分離,讓前後端工程師只需要專注於前端或者後端的開發工作,有利於編寫出高質量的代碼,培養開發工程師獨特的技術特性,然後構建出一個全棧式的精益開發團隊。
- 提高工作效率,分工更加明確
前後端分離的工作流程可以使得前端專心前端,後端關心後端,兩者開發同時進行,提高開發效率,頁面的增加和路由的修改也不必再去麻煩後端,開發更加靈活。
- 降低服務器負載,系統性能提升
通過前端路由的配置,我們可以實現頁面的按需加載,無需一開始加載首頁便加載網站的所有資源,服務器也不再需要解析前端頁面,在頁面交互及用戶體驗上有所提升。
- 增強代碼的可維護性
前後端分離後,應用的代碼不再是前後端混合,只有在運行期纔會調用依賴關係,並且分層明確,應用代碼變得整潔清晰。
對於你們的團隊和產品有沒有必要前後端分離?
要回答這個問題,需要從團隊人員分配、人力資源和研發技能儲備這三個方面出發,進行探討決定。 如果團隊人員比較少、人力資源不足,項目不大我覺得沒必要前後端分離。