####先後端分離的演變html
記得12年從事工做的時候公司尚未專門的前端人員,通常咱們都是先後端都會,畢竟那時候H5纔剛剛起來微軟的XP還在流行使用(默認系統自帶IE6),IE的市場份額仍是蠻大的。作的產品也沒有很炫酷的特效(若是有也會選擇使用flex),那時候Flash 是超級火的......扯得有點遠了。
在開發的時候也是一邊API接口服務,一邊開發頁面,發佈也是一個發佈包搞定。前端通常只是負責切圖工做,就是將UI設計師的設計圖佈局成靜態頁面,前端是不參與交互邏輯和業務開發的,前端也是當時統一的吐槽對象。當時淘寶的Web架構比較流行基本上都是基於MVC框架webx,因此前端寫好靜態html 而後後端開發人員翻譯成vm模板.....
這樣就致使了先後端工做的分配不均,開發效率慢,代碼維護量也大。爲了解決痛點 慢慢開始先後端分離的架構流行開來 很好的解決了先後端分工不均問題,將更多的交互邏輯分配給前端來處理,然後端則能夠專一於其本職工做。例如後臺開發能夠有跟多的時間進行後臺權限控制以及複雜的運算工做,先後臺解耦 ,二者同時開始推動項目進度,增長開發效率。
複製代碼
####如何進行先後端分離 最開始的時候是SPA式的先後端分離法,單純的從物理層作區分(認爲只要是客戶端的就是前端,服務器端的就是後端),這種分法不能知足先後端分離的需求,認爲從技術職責上劃分才能知足目前咱們的使用場景,做者在工做中使用過兩種方案:前端
第一種:
前端:負責View和Controller層。
後端:只負責Model層,業務處理/數據等。
複製代碼
優勢:能夠作url design,咱們能夠根據場景決定在服務端同步渲染,仍是根據view層數據輸出json數據,咱們還能夠根據表現層需求很容易的作Bigpipe,Comet,Socket等等,徹底是需求決定使用方式。 缺點:須要前端來寫Controller,以Java語言開發爲例,須要前端學會Java開發,這樣在處理複雜的業務邏輯的產品裏雙方都有Java 代碼方面的重疊。web
第二種:
前端:負責View層。
後端:負責和Controller、Model層和業務處理/數據等。
複製代碼
優勢:前端不須要學習後臺開發語言,只須要調用API服務就好,先後端代碼分別統一管理起來 造成本身的對接規範。這樣前端能夠和不一樣的後臺語言作對接服務。json
####RESTful Api和Json搭建先後臺交互後端
備註:如今公司使用的RESTful 架構,後臺提供一組設計原則和約束條件。緩存
RESTful 主要用於客戶端和服務器交互類的軟件。基於這個風格設計的軟件能夠更簡潔,更有層次,更易於實現緩存等機制。
複製代碼
RESTful Api和Json 技術的使用讓先後端交互日益便利 先後端分離之後就存在數據交互的問題,如何快速、簡潔、有效和統一的在先後臺進行信息的交互,成爲分離之後必須考慮的問題。 幸運的是, RESTful思想和Json數據標準的出現,使得這種交互日益便利,在前端,咱們耳熟能詳的JS技術和框架對RESTful和Json的支持能夠說已經水到渠成. 至於後端,無論什麼語言,什麼平臺都有很是成熟的方案. 先後端的不一樣發展趨勢使得先後端分離需求日益明顯.安全
####漸進式框架Vue.js bash
Vue 是一套用於構建用戶界面的漸進式框架。與其它大型框架不一樣的是,Vue 被設計爲能夠自底向上逐層應用。Vue 的核心庫只關注視圖層,不只易於上手,還便於與第三方庫或既有項目整合。另外一方面,當與現代化的工具鏈以及各類支持類庫結合使用時,Vue 也徹底可以爲複雜的單頁應用提供驅動。
複製代碼
備註:先介紹到這裏,有不一樣的想法能夠下方留言一塊兒討論。服務器
總結:衆所周知,Web開發自出現以來一直存在性能,表現和體驗的先天不足,但時至今日,事實已經並不是如此,一些看上去甚至比桌面程序更炫的應用和網站橫空出世,客戶也被吊足了胃口。Web開發桌面化已是沒法阻擋的潮流,而前端開發的需求應該會向更加註重界面表現,速度流暢,用戶體驗的方向發展,並且要求只會愈來愈高。 而在後端穩定、性能、安全、存儲和業務等核心問題依然是主流,因此先後端的需求必將日益分化,注重表現和注重內在的先後端開發人員必將須要適合本身的舞臺。架構
更多精彩內容請關注「IT實戰聯盟」公衆號哦~~~