任何脫離業務發展,業務特色的架構設計都是耍流氓,不是任何公司在任何階段都適用「先後端分離」分層架構的,今天簡單聊聊實施「先後端分離」須要考慮的一些要素,供你們參考。前端
1、SEO上的考慮node
若是是 PC 端的站點,須要考慮是否須要強支持 SEO ,先後端分離的架構,極可能須要搜索引擎的 spider 執行完 js 才能獲得完整的可收錄的頁面,而「執行 js 」並非全部搜索引擎都支持的,此時勢必影響站點的收錄。json
固然,若是是原生 APP ,後端 node.js 只返回 json 數據,或者單頁應用 SPA (對百度來講就是一個頁面),則不太須要考慮這方面的問題。後端
2、產品特性的考慮架構
不少產品追求酷炫的前端效果,而且對前端兼容性要求很高,前端產品改版頻率很高,那麼先後端分離是有必要的。前後端分離
不然,先後端分離只會帶來更多系統架構的複雜性。ide
3、公司發展階段的考慮搜索引擎
公司發展的初級階段,人比較少,對產品迭代速度的要求較高,此時更多的須要一些全棧的工程師,一我的開發從前到後全搞定。若是此時實施先後端分離,將引入「聯調」一說,而且增長了溝通成本比,可能致使產品迭代的速度下降。spa
4、人員技能考慮架構設計
傳統 FE 與後端 Java/PHP 工程師的合做方式, FE 工程師不須要有很深的後端功底,一旦引入先後端分離, node.js 層的前端同窗須要瞭解更多的後端知識體系,不排除有 FE 同窗對後端技能的排斥,引起人員的不穩定。
結論:先後端分離不僅是一個分層架構的技術決策,和SEO、產品特性、公司發展階段、人員知識體系相關,千萬不可一律而論。