前後端分離和不分離的區別是什麼

青灯夜游
發布: 2023-01-04 09:37:31
原創
22915 人瀏覽過

區別:前後端不分離中,前端頁面看到的效果都是由後端控制,由後端渲染頁面或重定向,即後端需要控制前端的展示,前端與後端的耦合度很高。前後端分離中,後端僅傳回前端所需的數據,不再渲染HTML頁面,不再控制前端的效果,前端與後端的耦合度相對較低。

前後端分離和不分離的區別是什麼

本文操作環境:windows10系統、thinkpad t480電腦。

相關推薦:《程式設計影片

一、前後端分離的概念

1、前後端分離

  • 前後端分離是一種架構模式,說通俗點就是後端專案裡面看不到頁面 (JSP | HTML),後端給前端提供接口,前端調用後端提供的REST 風格接口就行,前端專注寫頁面(html|jsp)和渲染(JS|CSS|各種前端框架);後端專注寫程式碼就行。
  • 前後端分離的核心:後台提供數據,前端負責顯示

1、軟體架構模式

最熟悉MVC設計模式,Model—View-Controller 模型-視圖-控制器

  • 它是怎麼運作的?通俗來說:你在頁面輸入一個網址(請求-Request),這個網址跑到哪裡去了呢?就去呼叫介面
    (REST風格),這個介面其實就是存取後端的一段程式碼(方法),後端有很多方法。
  • 如何決定訪問的是哪個方法?就是介面定義好的,例如:177.25.26.7/idp/user/login,這裡面的idp就表示一
    個服務(一個工程), user表示一個類,login表示具體要呼叫的那個方法,你一旦回車,就直接呼叫了後端這個方法,後端這個方法就去資料庫(MySQL| Oracle|其他)取數據,資料庫表中每一行數據就表示一個對象,也就是一個JavaBean,最後用pojo方式存到集合框架( List|Map|Set|等)中,方法把這個集合回,那麼呼叫這個介面的結果就是會響(Response)給你一個結果集,前端就拿到了這個數據,然後透過頁面(html|Jsp)展現出來,這個使用者看到的就是View層做的事情。

2、前後端分離的原因

#以前,聽說TDD (Test-driven development,測試驅動開發) 可以改善程式碼的質量,我們便實作了TDD;接著,聽說BDD (Behavior-driven development,行為驅動開發) 可以交付符合業務需求的軟體,我們便實作了BDD;後來,聽說DDD (Domain-driven design,領域驅動設計) 可以分離業務程式碼與基礎程式碼,我們便實作了DDD。今天,聽說了前後端分離很流行,於是我們就實施了前後端分離——這就是傳說中的 HDD(Hype-driven Development,熱鬧驅動開發)

過程TDD -》 BDD -》 DDD =》 HDD

3、前後端分離的優點

前後端分離則可以很好的解決前後端分工不均的問題,將更多的交互邏輯分配給前端來處理,而後端則可以專注於其本職工作,例如提供API接口,進行權限控制以及進行運算工作。而前端開發人員則可以利用nodejs來建立自己的本機伺服器,直接在本機開發,然後透過一些外掛程式將api請求轉送到後台,這樣就可以完全模擬線上的場景,並且與後台解耦。前端可以獨立完成與使用者互動的整個過程,兩者都可以同時開工,不互相依賴,開發效率更快,而且分工比較均衡。

總結優點如下:

  • 提升開發效率
  • 完美應對複雜多變的前端需求
  • 增強程式碼可維護性

二、前後端分離與前後端不分離的差異

##1、前後端不分離

  • 在前後端不分離的應用模式中,前端頁面看到的效果都是由後端控制,由後端渲染頁面或重定向,也就是後端需要控制前端的展示,前端與後端的耦合度很高。
  • 這個應用程式模式比較適合純網頁應用,但當後端對接App時,App可能不需要後端回傳一個HTML網頁,而只是資料本身,所以後端原本返回網頁的介面不再適用於前端App應用,為了對接App#後端還需再開發一套接口。

2、前後端分離

  • #在前後端分離的應用模式中,後端只傳回前端所所需的數據,不再渲染HTML頁面,不再控制前端的效果。至於前端使用者看到什麼效果,從後端請求的資料如何載入到前端中,都由前端自己決定,網頁有網頁的處理方式,AppApp的處理方式,但無論哪種前端,所需的資料基本上相同,後端僅需開發一套邏輯對外提供資料即可。
  • 在前後端分離的應用模式中 ,前端與後端的耦合度相對較低。
  • 在前後端分離的應用模式中,我們通常將後端開發的每個視圖都稱為一個接口,或者API,前端透過存取接口對資料進行增刪改查。

想要查閱更多相關文章,請造訪PHP中文網! !

以上是前後端分離和不分離的區別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!