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