聽說前後端分離是為了讓前端人員專註前端,後端人員專註後端,但如果項目比較簡單,並且總共也就幾個人在開發,前後端分離還有意義嗎?
If all you have is a hammer, everything looks like a nail
如果手裡只有鎚子,看見什麼都是釘子。
一個人或團隊熟悉什麼,往往就用熟悉的技術解決所有問題。不管是大型項目還是小型項目,熟悉程度一定會戰勝架構合理性。
就像B/S架構還沒有普及的年代,會有很多人問這個問題:小項目需要採用B/S結構嗎?因為他們熟悉PB、VB。
只熟悉PHP的人同樣會問:小項目有必要上J2EE嗎?而熟悉J2EE的人,哪怕只有一個JSP頁面的小項目也不會用PHP。
只熟悉JSP和Servlet的人同樣會問:小項目有必要上Spring嗎?而熟悉Spring的人,哪怕項目再小也不打算自己寫Servlet。
只熟悉Spring的人同樣會問:小項目有必要用Weblogic嗎?而熟悉Weblogic的人,哪怕就作一個小的門戶網站,也不會考慮用Spring。
只熟悉JS的人同樣會問:小項目有必要用Typescript嗎?而熟悉Typescript的人,哪怕寫一個最簡單的Demo也不會用JS。
多學習,多實踐,別讓自己手裡只攥著一把鎚子。就像現在的貿易戰,我方說了:我們工具箱裏的工具非常多,足以應付關稅帶來的壓力。這樣才能應付各種架構需要,靈活選擇工具,自由組合工具。
要要要
前端建議使用ORM,否則寫的麵條程序,不方便管理維護
前後端分離後,可以先寫前端再寫後端,實現依賴倒置,開發速度更快
基於json通信協議編程優於基於設計模式,設計模式依賴於設計語言和平臺,json不會有依賴。
電子郵件,dns,http,web,這些都是協議,生命力很強,可以脫離伺服器具體實現。
前端如同電子郵件客戶端像outlook,foxmail這種,隨便換,後端如同電子郵件伺服器,也可以隨便換不同的語言開發,可以是java也可以是python開發的,完全靠電子郵件協議來解耦。
隨著不同終端的興起,對開發人員的要求越來越高,純瀏覽器端的響應式已經不能滿足用戶體驗的高要求,我們往往需要針對不同的終端開發定製的版本,為了提升開發效率,前後端分離的需求越來越被重視,前端主要負責頁面的展現和交互邏輯,後端主要負責業務和數據介面,同一份數據介面,我們可以定製開發多個版本。
前後端不分離:
在之前的開發方法,php代碼寫在HTML中,不存在純粹的PHP文件和HTML文件,這就是前後端的不分離,也就是php和HTML你中有我我中有你,而在前後端不分離的應用模式中,前端頁面看到的都是由後端控制,由後端渲染頁面或者重定向,也就是後端需要控制前端的展示,前端與後端的耦合度很高,請求的數據交互如下圖: