前文《互联网分层架构,为啥要前后端分离?》详细介绍了前后端分离的缘起,很多朋友在评论中留言,纷纷表示,要往前后端分离架构上转型。
任何脱离业务发展,业务特点的架构设计都是耍流氓,不是任何公司在任何阶段都适用“前后端分离”分层架构的,今天简单聊聊实施“前后端分离”需要考虑的一些要素,供大家参考。
一、SEO上的考虑
如果是 PC 端的站点,需要考虑是否需要强支持 SEO ,前后端分离的架构,很可能需要搜索引擎的 spider 执行完 js 才能得到完整的可收录的页面,而“执行 js ”并不是所有搜索引擎都支持的,此时势必影响站点的收录。
当然,如果是原生 APP ,后端 node.js 只返回 json 数据,或者单页应用 SPA (对百度来说就是一个页面),则不太需要考虑这方面的问题。
二、产品特性的考虑
很多产品追求酷炫的前端效果,并且对前端兼容性要求很高,前端产品改版频率很高,那么前后端分离是有必要的。
否则,前后端分离只会带来更多系统架构的复杂性。
三、公司发展阶段的考虑
公司发展的初级阶段,人比较少,对产品迭代速度的要求较高,此时更多的需要一些全栈的工程师,一个人开发从前到后全搞定。如果此时实施前后端分离,将引入“联调”一说,并且增加了沟通成本比,可能导致产品迭代的速度降低。
四、人员技能考虑
传统 FE 与后端 Java/PHP 工程师的合作方式, FE 工程师不需要有很深的后端功底,一旦引入前后端分离, node.js 层的前端同学需要了解更多的后端知识体系,不排除有 FE 同学对后端技能的排斥,引发人员的不稳定。
结论:前后端分离不只是一个分层架构的技术决策,和SEO、产品特性、公司发展阶段、人员知识体系相关,千万不可一概而论。
前后端分离,你的意见呢?