您當前的位置:首頁 > 旅遊

能否舉例說明:MVC和前後端分離的關係?

作者:由 yyh 發表于 旅遊時間:2019-05-09

能否舉例說明:MVC和前後端分離的關係?Rex Zhang2019-05-09 14:05:13

謝邀

這個還能答一下。相信題主已經知道MVC和前後端分離的定義了,不知道的話可以搜一下。

MVC的目標是讓系統開發易於分工,程式碼可讀性強好維護,後續開發容易跟進等等。可能程式碼分離和開發分工,造成題主會有前後端分離的感覺,但是大多數MVC還是開發模式,並不是現在普通意義的前後端分離模式。

前後端分離,不太好定義,我就舉一個例子,就是某米的搶購頁面,前端頁面可以給顧客呈現出正在排隊等等,實際上後端可能已經擠爆,這個網上有現成的例子,手機App做的好也可也實現類似。

能否舉例說明:MVC和前後端分離的關係?國明2019-05-11 11:15:22

從時間上來講 ,MVC是很早就有的概念,它是一個針對介面和資料的程式碼關係的一個設計模式,

而前後端分離更多的是近幾年火起來的概念,在我的經驗裡,我覺得 前後端分離更多是一種人員管理層面的內容

這兩個名詞說得很多,但也沒有教科書去準確定義,可能各人有各人的理解。

這裡簡述一下web的歷史,看看這兩個概念在當時是什麼情況。(並沒有做嚴格的考究,都是經驗之談,可能有誤,指正下)

1,web的架構設計,最早期是靜態介面,就像是早的 hao123_上網從這裡開始,提供靜態頁面

2,後來發展成有資料儲存,於是就有有動態介面,jsp,php是其中比較火的模式,這個時間,可以在jsp頁面上寫上直接拿的邏輯,比如sql

3, 後來專案越來越大了,jsp中的sql會到處都copy,不利於維護,於是就想把獲取資料這一塊給抽出來,比如寫在java的一個類 getUser(),然後jsp頁面,就用${user.name} ,jsp引擎去自動去解析。

實際上這個就是MVC了。把m(資料),和v(檢視)分離出來

4,智慧手機出來前,web中前後端分離都還沒那麼火,但是已經這方面的應用了,如郵箱如一些web的外形像作業系統的一些網站,這個時間我們經常叫富客戶端,實際上大公司,這時候已經有不少的 純web前端的工程師了,不過他們的組織架構還是在技術部,和後端人員關係緊密。

5, ios和android興起後,形成了一個很大群體,就是 客戶端開發工程師,這個時候,我們對客戶端的使用者體驗要求很高,為此還火了產品經理,互動設計師等的職位,受這個影響,web層也有很大的變化,很多人覺得,複雜的web頁面,應該要有專人去處理。

6,於是很多大公司開始分化出前端團隊,其中就包括了web前端,同時node和html5的興起,web前端工程師有了更大的想象空間。到了這裡,

前後端分離的想法就已經很明顯了,後端關注資料和邏輯,前端關注介面與互動

,這裡的前端包括了各種客戶端+web。

題目問的是 這兩者的關係,

我感覺,view(JSP)+controller+model ,即mvc本身也是把 檢視層 和 資料層分離的例子。但是由於jsp是服務端模板,所以大部分情況 jsp和model是一個人或一個團隊來搞的。

後來覺得view層應該被更加關照,所以 前端團隊和後端團隊就分離了,這個分離並不是否定Mvc,反而,更是對mvc中v的專業化。 受v層專業化的促進,node生態,angular,vue,react等也變得更完善了。

所以我的結論是 服務架構上看來,

前後端分離是 mvc中對v的精細化

具體就是:

管理層面分團隊,

程式碼結構層面拉出一個前端專案(後端模板引擎變成前端模板引擎渲染),

程序分佈層面上,在瀏覽器和資料伺服器中間加一個 前端伺服器(也可以不加)。

能否舉例說明:MVC和前後端分離的關係?曹雲2019-05-11 13:46:41

先說MVC,前後端分離的目的。為了簡單,高效。

以麻辣燙為例,從前小本經營,怎麼做一碗麻辣燙呢?買材料,煮湯,支起攤子做生意。這些都是你一個人幹。就像最開始的網頁,顯示一個靜態頁面,使用一些指令碼語言比如php。點選一下,變一個顏色。

後來衍生出mvc架構。就相當於買材料一個人,煮湯一個人,支起攤子是另一個人。這樣分工明確,能夠更好更快的做出一碗香辣爽口的麻辣燙。對應的,網頁也演變成了這樣,M層負責資料的儲存,V層負責頁面的展示,C層負責邏輯處理。

前後端分離是什麼情況呢。就是將店面和廚房分開。廚房只負責做菜,店面只負責接單。這樣可以並行執行,提高了生產效率。對應的,一個網頁,前端只負責處理頁面的樣式,資料全部交由後端處理。這樣並行開發,開發效率會提升很多。而且前後沒有影響,你可以大改前端介面,也可以大改後端語言,只要前後端協調一致。如果是mvc,你就得把專案推倒重來。如果這個解釋不清,就這麼看,假如客流量大了,mvc是廚房和餐廳連在一起,擴建都有影響。前後端分離,你只擴建店面就行。如果是前臺撐得住,廚房供應不過來,你再加間廚房便是。

以上是我對mvc,前後端分離的理解

能否舉例說明:MVC和前後端分離的關係?知乎使用者2019-07-02 19:39:04

前後端分離就是兩個人透過同一種語言(api)溝通協作完成工作

MVC就是一個人體內的各種器官 維持一個人的生存

能否舉例說明:MVC和前後端分離的關係?紅色閃光2020-04-22 14:26:23

外行試著打個比方。

MVC的進化:

jsp:你們程式碼怎麼寫的?在我這兒寫個java也就算了,還有人寫sql?以後我只管展示資料,邏輯你們自己看著辦。

java:不好意思家裡太亂了,我收拾收拾——家門口封成controller只管跟jsp對接;客廳封成service只管業務邏輯,臥室封成model接根線到資料庫。

前後端分離的進化:

客戶端:你們那個jsp也太弱了,指著它提供介面我還不如用命令列……

服務端:現在使用者一個個刁得不行,還有各種移動裝置的頁面,也難為我們了……

客戶端:那你這樣,我這兒工具全,各平臺兄弟也越來越多了,互動的事我來做好吧,你也別告訴我哪個標籤放哪個資料了,直接把純資料發給我我自己渲染,怎麼樣?

服務端:那傳資料總得有個規矩吧,我們一直用的xml……

客戶端:xml歲數大了也不好看,我這兒新招了個小夥計json,你看怎麼樣?

服務端:那就這麼定了,這樣一來我也能省不少事。

標簽: 分離  Web  jsp  前端  前後