前后端分離和不分離的區別是什么


前后端分離和不分離的區別是什么

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

相關推薦:《編程視頻

一、前后端分離的概念

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,前端通過訪問接口來對數據進行增刪改查。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM