1. 程式人生 > >對java前後端分離的理解

對java前後端分離的理解

成功 web服務 json數據 一個人 pri dubbo 權重 面向切面編程 docker

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

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

好好滴一個後臺開發人員,莫名其妙的做起了前端的活,很是心累啊。

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

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

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

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

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多線程,模塊化,面向切面編程,設計模式,瀏覽器兼容性,性能優化等等。 前端追求的是:頁面表現,速度流暢,兼容性,用戶體驗等等。

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

正所謂術業有專攻,一個人如果什麽都會,那麽他畢竟什麽都不精。
開發模式

以前老的方式是:
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請求把整個頁面包括動+靜全部返回過來)

對java前後端分離的理解