為什麼要把軟體做成前後端分離?
在Web應用開發過程中,業界對前後端的分界線似乎一直都沒有確定的概念,不過大多數人以瀏覽器作為前後端的分界線。將瀏覽器中為使用者進行頁面展示的部分稱為前端,而將執行於伺服器,為前端提供業務邏輯和資料準備的所有程式碼統稱為後端。
在傳統的前後端混合開發模式中,前端寫好靜態的HTML頁面交付給後端開發,靜態頁面可以本地開發,也無需考慮業務邏輯,只需要實現View即可。隨後後端使用模板引擎去套模板,同時內嵌一些後端提供的模板變數和一些邏輯操作。然後前後端整合對接,遇到問題,前臺返工,後臺返工。然後再整合,直至整合成功。
這種模式使得前端除錯的時候要安裝完整的一套後端開發工具把後端程式完全啟動起來,遇到問題需要後端開發來幫忙除錯。直接導致了前後端嚴重耦合,後端人員需要掌握一些前端語言,前端頁面裡還嵌入了很多後端程式碼。一旦後端換了一種語言開發,就需要重做。這種工作流程增加了大量的溝通成本、除錯成本等,並且前後端的開發進度相互影響,使得開發效率大大降低。
為了解決這個問題,前後端分離的開發模式走入了人們的視線。
準確的說,前後端分離並不只是開發模式,而是Web應用的一種架構模式。把前端與後端獨立起來去開發,放在兩個不同的伺服器,需要獨立部署。兩個不同的工程,兩個不同的程式碼庫,不同的開發人員,前後端工程師需要約定互動介面,實現並行開發和測試。開發結束後需要進行獨立部署,前端通過介面來呼叫呼叫後端的API,前端只需要關注頁面的樣式與動態資料的解析和渲染,而後端專注於具體業務邏輯。
使用前後端分離可以讓團隊分工更加明確。通過將開發團隊前後端分離化,讓前後端工程師只需要專注於前端或後端的開發工作,使得前後端工程師分別自治,培養其獨特的技術特性,然後構建出一個全棧式的精益開發團隊。這樣的開發團隊能夠快速應對需求的變更以及市場的複雜多變,打造出架構清晰、前後端並重的優質產品。
前後端分離以後,可以實現前後端程式碼的解耦,只要前後端溝通約定好應用所需介面以及介面引數,便可以開始並行開發,無需等待對方的開發工作結束。與此同時,即使需求發生變更,只要介面與資料格式不變,後端開發人員就不需要修改程式碼,只要前端進行變動即可。如此一來整個應用的開發效率必然會有質的提升。
在這種模式下,應用的程式碼不再是前後端混合,而是隻有在執行期才會有呼叫依賴關係。應用程式碼將會變得整潔清晰,不論是程式碼閱讀還是程式碼維護都會比以前輕鬆。
前後端分離並非僅僅只是前後端開發的分工,而是在開發期進行程式碼存放分離、前後端開發職責分離,前後端能夠獨立進行開發測試;在執行期進行應用部署分離。前後端分離的開發模式與傳統模式相比,能提升開發效率、增強程式碼可維護性,有規劃地打造一個前後端並重的精益開發團隊,更好地應對越來越複雜多變的Web應用開發需求。
放眼未來,應用的雲化、微服務化勢不可擋。同社會分工精細化一樣,前後端開發的精細化也是必然趨勢。技術在持續進步,架構在不斷演進,只有緊跟發展的腳步,不斷調整專案管理方式,軟體開發模式,才能在網際網路浪潮中把握機會,乘風破浪。
文.eaworld
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69930002/viewspace-2847837/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為什麼要前後端分離?有什麼優缺點後端
- 為什麼前後端分離了,你比從前更痛苦?後端
- 為什麼JavaWeb放棄jsp,去做前後端分離JavaWebJS後端
- 用jQuery怎麼做到前後端分離jQuery後端
- 前後端分離那些事後端
- 再談前後端分離後端
- 淺談前後端分離後端
- 前後端分離——使用OSS後端
- 前後端分離整合SpringSecurity後端SpringGse
- 將RuoYi前後端分離版本改造為子工程後端
- vue前後端分離修改webpackVue後端Web
- 前後端分離——資料mock後端Mock
- 前後端分離Ajax入門後端
- ???前後端分離模式的思考???後端模式
- Vue,Springboot前後端分離專案初體驗VueSpring Boot後端
- 【Web】JavaWeb專案為什麼我們要放棄jsp?為什麼要前後端解耦?為什麼要前後端分離?2.0版,為分散式架構打基礎。 - CSDN部落格WebJavaJS後端解耦分散式架構
- 前後端分離後模組開發後端
- 前後端分離的優缺點後端
- Laravel 前後端分離 csrf 防護Laravel後端
- spring shiro+cas 前後端分離Spring後端
- 實現前後端分離的心得後端
- 前後端分離之Ajax入門後端
- 從部署上做到前後端分離後端
- Flask前後端分離專案案例Flask後端
- 簡單的前後端分離 Cas後端
- Cloudera Manager 前後端分離部署方法Cloud後端
- 網際網路分層架構,為啥要前後端分離?架構後端
- 關於開發框架的秘密:前後端分離的好處是什麼?框架後端
- node-vue前後端分離記錄Vue後端
- axios前後端分離下載檔案iOS後端
- 前後端分離前端模擬資料後端前端
- Web前後端:如何分離,如何解耦?Web後端解耦
- jQuery 前後端分離專案總結jQuery後端
- 前後端分離開發腳手架後端
- 前後端分離開發部署模式【轉】後端模式
- 前後端分離的好處有哪些?後端
- 前後端分離技術路線圖後端
- 前後端分離之更好的mock你的後端api後端MockAPI