先後端分離的優點

一、能夠實現真正的先後端解耦,前端服務器使用Nginx。前端/web服務器放的是css,js,圖片等等一系列靜態資源(甚至你還能夠css,js,圖片等資源放在特定的文件服務器,例如阿里雲的oss,病使用cdn加速),前端服務器負責控制頁面引用&跳轉&路由,前端頁面異步調用後端的接口,後端/應用服務器使用Tomcat(把tomacat想象成一個數據提供者),加快總體相應速度。(這裏須要使用一些前端工程化的框架好比nodejs,react,router,react, redux,webpack)css

二、發現bug,能夠快速定位是誰的問題,不會出現相互踢皮球的現象。頁面邏輯,跳轉錯誤,瀏覽器兼容性問題,腳本錯誤,頁面樣式等問題,所有由前端工程師來負責。接口數據出錯,數據沒有提交成功,應答超時等問題,所有由後端工程師來解決。雙方互不干擾。前端

三、在大併發狀況下,我二姨同時水平拓展先後端服務器,好比淘寶的一個首頁就須要2000+臺前端服務器作集羣來扛住日均多少億+的日均PV。(阿里的技術峯會,聽他們說web容器都是本身寫的,就算他單實例抗10萬http併發,2000臺是2億http併發,而且他們還能夠根據預知洪峯來無線拓展,很恐怖,就一個首頁)。node

四、減小後端服務器的併發/負載壓力。除了接口之外的其餘全部http請求所有轉移到前端Nginx上,接口的請求調用Tomcat,參考Nginx反向代理Tomcat,且除了第一次頁面請求外,瀏覽器會大量調用本地緩存。react

五、即便後端服務暫時超時或者宏機,前端頁面也會正常訪問,只不過數據刷不出來而已webpack

六、也許你也須要有微信相關的輕應用,那樣你的藉口徹底能夠共用,若是也有APP相關的服務,那麼只要經過一些代碼重構,也能夠大量複用接口,提高效率。(多端應用)web

七、頁面顯示的東西再多也不怕,由於是異步加載。redux

八、Nginx支持頁面熱部署,不用重啓服務器,前端升級更無縫。後端

九、增長代碼的維護性&易讀性(先後端耦在一塊兒的代碼讀起來至關費勁)前端工程化

十、提高開發效率,由於能夠先後端並行開發,而不是像之前的強依賴瀏覽器

十一、在Nginx中部署證書,外網使用https訪問,而且只開放443和80端口,其餘端口一概關閉(防止黑客端口掃描),內網使用http,性能和安全都有保障

十二、前端大量的組件代碼得以複用,組件化,提高開發效率,抽出來!

 

轉發:https://www.jianshu.com/p/1fe4d27ebcf1

相關文章
相關標籤/搜索