-
1 # APP開發技術員
-
2 # lgm程式設計學習筆記
一個人的精力有限,前後端分離有助於我們更專注我們所要注重的技術點,俗話說:“術業有專攻”。
比如我們後端,前後端分離有助於我們把注意力放在java基礎,設計模式,jvm原理,spring+springmvc原理及原始碼,linux,mysql事務隔離與鎖機制,mongodb,http/tcp,多執行緒,分散式架構(dubbo,dubbox,spring cloud),彈性計算架構,微服務架構(springboot+zookeeper+docker+jenkins),java效能最佳化,以及相關的專案管理等等。
而前端也可以集中精力在前端的展示上。
總的來說,前後端分離利大於弊。這也是越來越少用jsp的原因。
-
3 # 青蓮網路雲服務
我理解的前後端分離,前端是需要起伺服器的,減少學習成本,可以用node,前端也要有域名的
如果是半分離, 那麼前端提供js檔案(css等)這個我也做過,前後端都用node就不說了,如果是兩種語言,
如果一個工程檔案下開發,webpack下直接打包進後臺語言的靜態目錄下。
如果是兩個工程,那麼前端只提供生成的js(css)檔案,git pull後臺專案,扔進靜態目錄,這樣又涉及到版本控制的問題,一般我會生成一個配置檔案,直接讀取的,內容是xxx.hash.js這種檔名,然後document.wirte動態寫入js/css
前端起伺服器就不需要動態引入了,直接html外掛生成檔案,更好的控制版本
半分離 還有一個問題,例如首頁同構,如果更改xxx.blade.php檔案,這就又動了php檔案,甚至包括nginx反向代理啊,ssl這種快取啊,都比較麻煩,你要是改了點啥,自己的ok了,後臺的崩了,那就挺操蛋了,大公司有專門的運維還好,小公司真的是一團糟
後臺我們採取全分離,nginx前端管理,至於升級nginx版本,http2,反向代理,https證書,都是前端自己弄,畢竟小公司,每個人水平都不一致,自己負責自己的比較好
但是這個跨域又要稍微處理一下,至今我這邊後臺還是*,我也沒法說什麼
阿里雲這麼便宜,如果把成本浪費在人力上,會變得很貴
回覆列表
把前端與後端獨立起來去開發,放在兩個不同的伺服器,需要獨立部署,兩個不同的工程,兩個不同的程式碼庫,不同的開發人員,前後端工程師需要約定互動介面,實現同步開發,開發結束後需要進行獨立部署,前端透過介面來呼叫呼叫後端的API,前端只需要關注頁面的樣式與動態資料的解析和渲染,而後端專注於具體業務邏輯。具體好處有以下幾點:
1.徹底解放前端
前端不再需要向後臺提供模板或是後臺在前端html中嵌入後臺代
2.提高工作效率,分工更加明確
前後端分離的工作流程可以使前端只關注前端的事,後臺只關心後臺的活,兩者開發可以同時進行,在後臺還沒有時間提供介面的時候,前端可以先將資料寫死或者呼叫本地的json檔案即可,頁面的增加和路由的修改也不必再去麻煩後臺,開發更加靈活。
3.區域性效能提升
透過前端路由的配置,我們可以實現頁面的按需載入,無需一開始載入首頁便載入網站的所有的資源,伺服器也不再需要解析前端頁面,在頁面互動及使用者體驗上有所提升。
4.降低維護成本
透過目前主流的前端MVC框架,我們可以非常快速的定位及發現問題的所在,客戶端的問題不再需要後臺人員參與及除錯,程式碼重構及可維護性增強。
5.實現高內聚低耦合,減少後端(應用)伺服器的併發/負載壓力。
6.即使後端服務暫時超時或者宕機了,前端頁面也會正常訪問,但無法提供資料。
7.可以使後臺能更好的追求高併發,高可用,高效能;使前端能更好的追求頁面表現、速度流暢、相容性、使用者體驗等。