1樓:匿名使用者
對於前後端分離,認識上有個誤區,那就是很多人自稱:我們老早就分離了,全ajax,使用angular或者什麼什麼就可以了。
這個說法是不合適的,打個比方,別人問的是「如何解決家禽把蛋生在水草邊的問題?」,但實際上人家養的是鴨子,答題的卻是養雞的,所以回答「不讓去水邊就行了」,這顯然不在點子上。
這兩年業界說的前後端分離,是限於偏展示類的系統(用a代替),而不是應用、管控類web專案(用b代替),在b類專案裡,前後端是天然分離的,對此,除了
少部分後端開發人員,基本所有人的認識都是一致的。上一段中這樣回答的人一般都是隻做b類專案,在b類專案裡,前後端分離是共識,不需要討論。
那麼,剩下的問題就是討論a類專案的前後端分離了。這個問題的核心在什麼地方呢,在於模板的與資料結合的位置,以及,模板的控制權在誰手裡。經過這兩年的討論,基本上我們可以達成的共識就是:
模板應當由前端人員去控制,主要原因有兩方面:
- 效能優化(尤其是外部資源的管理與釋出,請求合併等等)
- 協作的順暢性(已形成模板的介面片段的返工等問題)
那麼,模板到底應該在什麼地方跟資料結合?
這個問題就比較折騰了,有部分人嘗試像b類專案那樣,使用js模板,然後在瀏覽器端執行,這是存在一些問題的,比如說seo不友好,首屏效能不夠,尤其對於首頁dom量很大的電商類**,差距很明顯。
所以我們還是得把主要的模板放在服務端來執行。在這個過程中,阿里作了一些嘗試,那就是引入node層,在這一層把模板與資料進行合成,然後瀏覽器拿到的就
是生成好的html了,但也不是所有html都是這麼生成好的,還是會有一些內容等到了瀏覽器之後,再用js去載入和生成。
所以這一定會是一個混合方案,同一個系統中存在兩種模板,一種在服務端執行,一種在瀏覽器中執行,互為補充。
至於說這個方案中,是否中間層一定要是node,我覺得無所謂,只要是能正常做web專案的東西都可以,這個還是要看所在企業的技術積累方向,當然node
做這塊是有一些優勢的,比如對前端人員的語言友好性,前後端模板的通用性等等,但這些都是細節,重點還是整體方案和流程。
這時候回頭看你問題中的這句:
> 前後端分離的意思是,前後端只通過 json 來交流,元件化、工程化不需要依賴後端去實現。
我相信你這裡對前後端的限定是以瀏覽器為準的,但事實上,a類專案中,前後端的分界一定要延伸到伺服器端的模板層,也就是在這一層裡,把各種**的資料整合到模板中,這個資料未必是json格式的,會存在有json,xml,特定的二進位制等等。
元件化這個話題就更復雜了,在剛才組織形式中,很難說出究竟什麼才是元件。是某個商品的模板嗎?是資料嗎?是資料和模板的結合體嗎?沒法回答。在此,我說一
句自己的看法:像電商這種專案的前端部分,基本不存在元件的概念,甚至不存在元件化的價值,因為這裡面可複用的東西太少了,也不易提取,大多數東西都是不
帶邏輯的介面模板。
最近因為reactjs的流行,帶來了一個isomorphic的概念,這是一種很有意義的探索,但是否能解決這類問
題,尚不得而知,根據我的理解,它對b類專案是較好的補充方案,但對a類專案暫時還缺乏可用性,因為a類專案中,執行期的dom變更並不多,多是整片的改
變,用這個方案去解決的話,有些牛刀殺雞的感覺。
關於b類專案的元件化,我之前那個沒寫完的系列是關於它的,但經過最近一年多的思考,我又覺得需要再重新寫一篇東西了。感謝你的問題提醒了我,這就寫。
web 前後端分離的意義大嗎
2樓:匿名使用者
這個說法是不合適的,打個比方,別人問的是「如何解決家禽把蛋生在水草邊的問題?」,但實際上人家養的是鴨子,答題的卻是養雞的,所以回答「不讓去水邊就行了」,這顯然不在點子上。
這兩年業界說的前後端分離,是限於偏展示類的系統(用a代替),而不是應用、管控類web專案(用b代替),在b類專案裡,前後端是天然分離的,對此,除了
少部分後端開發人員,基本所有人的認識都是一致的。上一段中這樣回答的人一般都是隻做b類專案,在b類專案裡,前後端分離是共識,不需要討論。
那麼,剩下的問題就是討論a類專案的前後端分離了。這個問題的核心在什麼地方呢,在於模板的與資料結合的位置,以及,模板的控制權在誰手裡。經過這兩年的討論,基本上我們可以達成的共識就是:
模板應當由前端人員去控制,主要原因有兩方面:
- 效能優化(尤其是外部資源的管理與釋出,請求合併等等)
- 協作的順暢性(已形成模板的介面片段的返工等問題)
那麼,模板到底應該在什麼地方跟資料結合?
這個問題就比較折騰了,有部分人嘗試像b類專案那樣,使用js模板,然後在瀏覽器端執行,這是存在一些問題的,比如說seo不友好,首屏效能不夠,尤其對於首頁dom量很大的電商類**,差距很明顯。
所以我們還是得把主要的模板放在服務端來執行。在這個過程中,阿里作了一些嘗試,那就是引入node層,在這一層把模板與資料進行合成,然後瀏覽器拿到的就
是生成好的html了,但也不是所有html都是這麼生成好的,還是會有一些內容等到了瀏覽器之後,再用js去載入和生成。
所以這一定會是一個混合方案,同一個系統中存在兩種模板,一種在服務端執行,一種在瀏覽器中執行,互為補充。
web 前後端分離的意義大嗎
web前後端分離的意義大嗎 web前端開發好學嗎
3樓:嘩啦啦的三爺
前端還是比較好學的,一些標籤類的語言,js可能會涉及到一些邏輯方面的問題,其他都是頁面佈局排版方面的,個人推薦學習後端,發展更廣一點。
web為什麼要前後端分離?優點是什麼?
4樓:星幣騎士
解耦,降低耦合度,而且前後端分離可以提升一些後端的開發效率。
web 前後端分離的意義大嗎
5樓:硪丨曖戀
簡單來說,對於原始的web開發模式,前後端分離的意義當然是非常大的,但是是不是要具體到:
前後端只通過 json 來交流,元件化、工程化不需要依賴後端去實現。
這個有待商榷,具體的實現方式多種多樣,前後端的解耦程度是否越大越好?這個不一定。web開發是一個很複雜的工程性的問題,前後端分離只是其中一個小問題,採用何種方案進行分離,在什麼層面/維度進行分離?
這些都是實踐中要根據具體情況去進行抉擇的事情。
最後回到問題
web 前後端分離的意義大嗎?1、該**前端變化遠比後端變化頻繁,則意義大。
2、該**尚處於原始開發模式,資料邏輯與表現邏輯混雜不清,則意義大。
3、該**前端團隊和後端團隊分屬兩個領導班子,技能點差異很大,則意義大。
4、該**前端效果絢麗/跨裝置相容要求高,則意義大。
web 前後端分離的意義大嗎
web 前後端分離的意義大嗎
web 前後端分離的意義大嗎
6樓:n悠悠我de心
意義?怎麼叫意義呢,做一個專案來說,不是特別講究意義所在,更重要的是能否快速準確的實現客戶需求,web專案是否前後端分離並不影響你完成這個專案,只在於影響你這個專案的執行速度等等情況。 web 前後端分離三個最大的優點在於:
1:最大的...
7樓:匿名使用者
意義很大,尤其是開發一個大的系統。
web前後端分離伺服器該如何選擇
前端 和後端 分離 最好 再加一臺資料庫 總共3臺伺服器 再同一個內網。前端和後端和資料庫 都分離開。然後資料庫只對前端和後端 通訊 web前端開發,前後端分離具體是怎麼樣的工作模式 前後端分離,顧名思義就是 前端只負責前端的開發,後端只只負責後端的開發,如何通過介面來進行資料互動。這樣做的好處就是...
如何處理好前後端分離的API問題
像電商這種專案的前端部分,基本不存在元件的概念,在b類專案裡,前後端分離是共識,比如對前端人員的語言友好性,把各種 的資料整合到模板中,這個資料未必是json格式的。如何處理好前後端分離的 api 問題 意義很大,但是你的問題本身認識有偏差。對於前後端分離,認識上有個誤區,那就是很多人自稱 老早就分...
前後端分離的情況下,跨域問題有沒有好的解決方案
1 前後端分離的bai意思是,前後端只通 du過 json 來交流.同意其他zhi 幾位,json 只是一種可選的dao協議專,而不是唯一,也未必是前後端屬通訊的最佳方案。2 元件化 工程化不需要依賴後端去實現.有哪些好處或弊端?前端的元件化 工程化,js 等 越來越胖,有點類似於過去 c s 時代...