分層架構,前后端分離有啥壞處?
前文《互聯網分層架構,為啥要前后端分離?》詳細介紹了前后端分離的緣起,很多朋友在評論中留言,紛紛表示,要往前后端分離架構上轉型。
任何脫離業務發展,業務特點的架構設計都是耍流氓,不是任何公司在任何階段都適用“前后端分離”分層架構的,今天簡單聊聊實施“前后端分離”需要考慮的一些要素,供大家參考。
一、SEO上的考慮
如果是 PC 端的站點,需要考慮是否需要強支持 SEO ,前后端分離的架構,很可能需要搜索引擎的 spider 執行完 js 才能得到完整的可收錄的頁面,而“執行 js ”并不是所有搜索引擎都支持的,此時勢必影響站點的收錄。
當然,如果是原生 APP ,后端 node.js 只返回 json 數據,或者單頁應用 SPA (對百度來說就是一個頁面),則不太需要考慮這方面的問題。
二、產品特性的考慮
很多產品追求酷炫的前端效果,并且對前端兼容性要求很高,前端產品改版頻率很高,那么前后端分離是有必要的。
否則,前后端分離只會帶來更多系統架構的復雜性。
三、公司發展階段的考慮
公司發展的初級階段,人比較少,對產品迭代速度的要求較高,此時更多的需要一些全棧的工程師,一個人開發從前到后全搞定。如果此時實施前后端分離,將引入“聯調”一說,并且增加了溝通成本比,可能導致產品迭代的速度降低。
四、人員技能考慮
傳統 FE 與后端 Java/PHP 工程師的合作方式, FE 工程師不需要有很深的后端功底,一旦引入前后端分離, node.js 層的前端同學需要了解更多的后端知識體系,不排除有 FE 同學對后端技能的排斥,引發人員的不穩定。
結論:前后端分離不只是一個分層架構的技術決策,和SEO、產品特性、公司發展階段、人員知識體系相關,千萬不可一概而論。
前后端分離,你的意見呢?
【本文為51CTO專欄作者“58沈劍”原創稿件,轉載請聯系原作者】