-
1 # IT人劉俊明
-
2 # 演算法
作為一名IT從業人員,我來回答下這個問題。
前後端分離,前端功能由前端負責,後端功能由後端負責,前後端相關功能以及任務職責分隔開,團隊的分工合作可以提高軟體開發的效率。
前後端分離可以提高系統的擴充套件力,前端功能有前端制定,後端功能由後端人員開發制定,前後端透過請求或者其他方式進行互動,前後端分別對功能進行拓展的時候,不會互相影響。
我本人從事多年網際網路Java開發,感興趣的朋友可以關注私聊,共同努力,共同進步。
-
3 # 數通暢聯
首先:軟體系統架構的前後端分離更多是在近幾年伴隨網際網路的盛行為提高前端與後端互動的響應速率,提升使用者的體驗進行衍生出了前後端分離架構。如:Vue、NodeJS與微服務架構結合。前端頁面進行UI展示效果渲染,後端負責編寫API服務進行資料提供,也可以引入NodeJS來作為橋樑架接後端API輸出的JSON,返回前端進行頁面展現。
其次:基於前後端分離架構一方面提升響應速度,將資料計算的過程在中間層處理,前端進行展示;避免傳統的大量資料請求伺服器的壓力基於中間層在內部處理拼接完成,效能得到了提升;以多元件、片段、卡片的模式實現並行的載入、顯示,在非WiFI的3G、2G的弱網路環境下優勢更為明顯,模板並行載入,優先載入優先顯示,提升使用者的互動體驗。
最後:從經典的MVC架構到SSM、SSH的Java框架時代,再到前端框架如:AngularJS、Vue等,雖然技術、架構一直在演變進步本質上均是為了更方便的解決需求,前後端分離架構更多的也是實現解耦的過程,不將前端與後端繫結,這也與SOA的理念是相吻合的,基於企業服務匯流排實現應用系統對接的松耦合,以插拔的模式將應用、單據、資料進行有效的連通與對接,以元件構建、平臺搭建、架構支撐的模式共同鑄建企業的資訊化建設,以更專業的平臺實現其專業領域的工作,助力企業資訊化的發展。
-
4 # Ktio
前後端分離大概是指是HTML和伺服器程式碼的分離,因為瀏覽器中解釋執行的HTML+JS+CSS程式碼混合著<%%>包含的內容確實是不友好,於是就有人發明了程式碼分離的技術,比如asp.net的基於事件的codebehind,struts的mvc方式。再後來,為了更徹底地分離,前端直接做成了獨立的程式包或應用,比如基於瀏覽器的angular、react之類的。這種前後端分離的好處是顯而易見的,即增加了程式碼的可讀性,增加了可維護性,同時也容易分配開發任務,前後端可以並行開發,互不干擾。目前大多數軟體都已經是前後端分離了,在這方面,天翎的myapps就整合的不錯,有興趣可以去研究一下他們的程式碼。
-
5 # 熱心小市民pp
我是一個業務人員,只接觸過廣州天翎的開發平臺,它的特點就是前後端分離,微服務架構,這個平臺是我負責初期選型,後期根據開發人員的反饋,覺得這個平臺的技術架構什麼都是很方便快捷,可以提高開發效率。我當時只是看天翎的平臺年限久,案例多,這種事情我始終覺得隨大流沒有錯,他們平臺有跟很多集團公司合作,比如保健品行業的無某極,建築行業的中建某局等等,跟著大佬選,準沒錯
回覆列表
作為一名從業多年的軟體開發人員,同時也在帶大資料和機器學習方向的研究生,所以我來回答一下這個問題。
軟體系統架構的前後端分離出於三方面考慮,其一是提升系統的業務處理能力,比如併發處理能力;其二是提升系統的可用性;其三是提升系統的擴充套件能力。另外,採用前後端分離的架構也會方便開發團隊的分工合作,提高開發效率。
在進行前後端分離的具體設計過程中,需要考慮三個重點內容,其一是採用前後端分別部署的方式,前端伺服器(Nginx)部署前端頁面,後端伺服器部署業務邏輯元件,這樣做的好處是可以分別搭建服務叢集(可以採用分散式架構),以便於提升系統的併發處理能力;其二是具體的技術選型,由於Java語言目前比較適合前後端分離的開發方式,所以目前大型網際網路平臺往往更願意採用Java方案;其三是開發平臺選擇,目前越來越多的開發團隊在轉向基於PaaS來搭建開發環境。
隨著雲計算的發展,目前雲計算服務逐漸從IaaS向PaaS過渡,雲計算平臺的資源整合能力也在不斷加強,這使得定製化開發任務變得越來越簡單。未來PaaS的發展會全面整合行業定製化軟體開發,這也會促進軟體開發行業的結構升級,促使一部分程式設計師進行崗位升級。
雖然前後端完全分離的方式比較適合大型網際網路平臺,但是在大資料的驅動下,目前軟體開發團隊小型化也是一個比較明顯的趨勢,這就要求程式設計師能夠同時兼顧多個開發角色的任務,也就是開發全棧化。所以,對於應用級程式設計師來說,如果想提升自身的崗位競爭力,可以考慮向全棧開發方向發展。