1. 程式人生 > >對於web開發前後端分離的思考

對於web開發前後端分離的思考

Android,iOS的移動應用app本來就是前後端徹底分離的,但是web app有必要前端端分離嗎?前後端分離的意義是什麼?有什麼弊端?知乎上也有對這個問題的討論https://www.zhihu.com/question/28207685,下面是我個人的一些思考。

一,前後端分離的好處

  1. 徹底解放前端。
  2. 提高工作效率,分工更加明確。
  3. 區域性效能提升。
  4. 降低維護成本。

二,前後端分離存在的問題

  • 為什麼不直接全棧?
    不能否認,如果開發人員是一群精通前後端的牛人當然是最好的。但是實際開發中,普遍的還是熟悉一端的人為多,如果全棧開發並不能作為一個通用的方案。那為什麼不讓後端人員學習前端開發,讓前端人員學習後端開發呢?首先,每個人的時間和精力都是有限的,技術上的專研要有側重點,除非是大神,普通人很難面面俱到。前端50分後端50分的兩個開發人員最後只能開發出一個50分的應用,一個前端80分後端10分的開發人員和一個前端10分後端80分的開發人員卻可以開發出一個80分的應用。前端分離,可以專人做專事,讓每個人發揮最大的長處。

  • 資料通過非同步獲取,不利於seo
    對於類似部落格這種展示類的應用可以頁面靜態化,或者通過其它一些手段優化seo,例如引入nodejs。

  • 是不是非得前後端分離不可?
    具體情況要具體分析,前後端分離是一種推薦的做法,但是如果遇到了前後端分離不好解決的問題,可以不分離,如缺少前端開發人員,或者前端介面邏輯比較複雜,後端渲染更容易實現,或者整體前後端分離部分特殊頁面後端渲染相結合。但是要保持警惕,防止當專案越做越大,對前端介面顯示的需求越來越大時,後端很難掌控前端的互動顯示,前端人員又很難接手之前後端人員寫的後端渲染頁面。

三,前後端聯調的溝通問題

不管前後端分不分離,前後端的聯調都是一個需要解決的問題,小團隊還好,大公司前後端聯調可能要跨部門協作,十分拖效率。
我個人的想法是,不管是否是大公司,都可以以小團隊的形式進行開發。例如某個版本的開發人員是相對固定的,那些這版本的策劃,前端和後端人員可以把工位調在一起,這樣隔壁桌或者走幾步就能直接面對面進行溝通,這種溝通方式的最高效直接方便的。

四,擴充套件閱讀