對java前后端分離的理解


到目前為止,身為一個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請求把整個頁面包括動+靜全部返回過來)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM