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