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