對java先後端分離的理解

到目前爲止,身爲一個java後端開發人員的我,javascript

在工做期間,無非就是ui設計頁面,前端開發html,以後將作好的頁面交給我,我負責後臺邏輯一件html的頁面渲染。css

好好滴一個後臺開發人員,莫名其妙的作起了前端的活,非常心累啊。html

 

一直不明白先後端分離是啥狀況,今天看了一篇博客,說的真到位。前端

偏頭痛楊 看就對了,到位。vue

 

先前一件公司使用jsp,效率着實夠低。html5

jsp必需要在支持java的web服務器裏運行java

4.第一次請求jsp,必需要在web服務器中編譯成servlet,第一次運行會較慢。

5.每次請求jsp都是訪問servlet再用輸出流輸出的html頁面,效率沒有直接使用html高(是每次喲,親~)。

6.jsp內有較多標籤和表達式,前端工程師在修改頁面時會捉襟見肘,遇到不少痛點。

7.若是jsp中的內容不少,頁面響應會很慢,由於是同步加載。
web服務器:通常指像nginx,apache這類的服務器,他們通常只能解析靜態資源。
應用服務器:通常指像tomcat,jetty,resin這類的服務器能夠解析動態資源也能夠解析靜態資源,但解析靜態資源的能力沒有web服務器好。
通常都是隻有web服務器才能被外網訪問,應用服務器只能內網訪問。
對於後端java工程師:
把精力放在java基礎,設計模式,jvm原理,spring+springmvc原理及源碼,linux,mysql事務隔離與鎖機制,mongodb,http/tcp,多線程,分佈式架構(dubbo,dubbox,spring cloud),彈性計算架構,微服務架構(springboot+zookeeper+docker+jenkins),java性能優化,以及相關的項目管理等等。
後端追求的是:三高(高併發,高可用,高性能),安全,存儲,業務等等。

對於前端工程師:
把精力放在html5,css3,jquery,angularjs,bootstrap,reactjs,vuejs,webpack,less/sass,gulp,nodejs,Google V8引擎,javascript多線程,模塊化,面向切面編程,設計模式,瀏覽器兼容性,性能優化等等。
前端追求的是:頁面表現,速度流暢,兼容性,用戶體驗等等。

以前講師說作一個全戰的程序員,先後端通吃,我發現,入門很容易,深刻真的很難node

正所謂術業有專攻,一我的若是什麼都會,那麼他畢竟什麼都不精。
開發模式

之前老的方式是:
1.產品經歷/領導/客戶提出需求
2.UI作出設計圖
3.前端工程師作html頁面
4.後端工程師將html頁面套成jsp頁面(先後端強依賴,後端必需要等前端的html作好才能套jsp。若是html發生變動,就更痛了,開發效率低)
5.集成出現問題
6.前端返工
7.後端返工
8.二次集成
9.集成成功
10.交付



新的方式是:
1.產品經歷/領導/客戶提出需求
2.UI作出設計圖
3.先後端約定接口&數據&參數
4.先後端並行開發(無強依賴,可先後端並行開發,若是需求變動,只要接口&參數不變,就不用兩邊都修改代碼,開發效率高)
5.先後端集成
6.前端頁面調整
7.集成成功
8.交付
請求方式

之前老的方式是:
1.客戶端請求
2.服務端的servlet或controller接收請求(後端控制路由與渲染頁面,整個項目開發的權重大部分在後端)
3.調用service,dao代碼完成業務邏輯
4.返回jsp
5.jsp展示一些動態的代碼



新的方式是:
1.瀏覽器發送請求
2.直接到達html頁面(前端控制路由與渲染頁面,整個項目開發的權重前移)
3.html頁面負責調用服務端接口產生數據(經過ajax等等,後臺返回json格式數據,json數據格式由於簡潔高效而取代xml)
4.填充html,展示動態效果,在頁面上進行解析並操做DOM。
(有興趣的童鞋能夠訪問一下阿里巴巴等大型網站,而後按一下F12,監控一下你刷新一次頁面,他的http是怎麼玩的,大多數都是單獨請求後臺數據,
使用json傳輸數據,而不是一個大而全的http請求把整個頁面包括動+靜所有返回過來)
相關文章
相關標籤/搜索