沈老师:别人在搞xxoo技术一定不能成为,一家技术的理由

团队正在推进前后端分离,我觉得架构变得复杂了,项目研发周期变长了,但组长说,互联网公司都在搞前后端分离,所以我们也要搞。今天,简单说说,互联网分层架构里的前后端分离。通过前后端分离分层抽象:(1)站点展示层:node.否则,前后端分离只会带来更多系统架构的复杂性。总之,前后端分离不只是一个分层架构的技术决策,和SEO、产品特性、公司发展阶段、人员知识体系相关,千万不可一概而论。

先生。沉,我在一家初创公司,研发团队20人左右。

团队正在推动前后端分离。我觉得结构变复杂了,项目开发周期变长了,但是组长说互联网公司都在搞前后端分离,所以我们也应该做。

我还是不明白,为什么要分开前后端呢?今天,简单来说,互联网分层架构中的前端和后端是分离的。画外音:“别人在做xxoo技术”不能成为公司推广“xxoo技术”的理由。

上图是典型的互联网分层架构:(1)业务站点层:web-;(2)业务服务层:biz-;(3)基础数据服务层: data-;(4)数据存储层:db+;随着时间的推移,业务越来越复杂,修改的也越来越多。此时,虽然业务站点的web层层使用MVC架构,下面的痛点是不是似曾相识?(1)产品追求华丽的效果,对设备兼容性要求很高。这些要求不断折磨着使用MVC的Java工程师;画外音:本文使用以Java后端为例。(2)无论是PC,手机H5,还是APP,应用前端的变化频率都远大于前端的变化频率。后端逻辑,修改模板不是Java工程师喜欢和擅长的工作;画外音:感谢那些喜欢做修改的人ct 经理。这时候为了缓解这些问题,一般会设立一个单独的前端FE部门负责交互和呈现的研发,其职责与后端Java工程师分离,但有痛点真的解决了吗?

(1)一点点改动需要Java工程师重新编译、打包、启动、重启,效率极低;(2)原Java工程师负责所有MVC研究和开发工作,现在又分为Java和FE,需要等前后端完成研发后再一起调试整体效果,这样不仅增加了沟通成本,但其中任何一个问题都可能导致项目延迟;画外音:你有没有被折磨过?具体看这样的例子,一开始产品只有PC版,此时系统分层架构如下:

前后端分离seo怎么做_前后端 分离 seo_前后端分离seo怎么办

客户端,web-,非常清晰。随着业务的发展,产品需要增加新的版本。大部分版本的业务逻辑和PC版是一样的。有什么区别? (1)显示的信息条数会比较少,也就是调用服务的时候,传入的参数会不一样;(2)产品功能会比较少,大部分调用是一样的,有几个不需要调用);(3)显示,交互会有所不同;由于工期紧张,web-的版本怎么来的?

前后端分离seo怎么做_前后端 分离 seo_前后端分离seo怎么办

是的,把PC版的工程复制一份,然后做个小修改:(1)调用的参数变了;(2)大部分调用都是一样的,几个调用;(3)修改展示和交互相关的代码;画外音:你复制代码了吗?业务不断发展,产品需要添加APP版本。APP版本和版本业务逻辑相同,有什么区别??(1)版本返回html格式的数据,APP版本返回json格式的数据,然后本地渲染;由于结构紧凑期间,网将军的APP版是怎么来的?

前后端分离seo怎么做_前后端分离seo怎么办_前后端 分离 seo

可以,把项目的版本复制一份,然后做个小修改:(1)把组装html数据的代码修改成组装json数据;

通过这样的迭代演进,架构会演变成什么?

前后端分离seo怎么做_前后端分离seo怎么办_前后端 分离 seo

(1)端:PC、APP;(2)站点应用层:PC站、M站、APP站;(3)服务层:通用业务服务、基础数据;这个架构图中的依赖是不是看起来很别扭?(1)终端和web-的连接很清晰;(2)web-和的连接关系变成了蜘蛛web; 上面的分层架构可能是什么问题?PC/H5/APP的web层业务大部分都是一样的,只有少数逻辑/表现/交互不同:(1)一次服务RPC接口稍有变化,所有web-都需要升级修改;(2)web-之间有很多代码拷贝;(3)代码一旦拷贝就出现bug,多个子系统 系统需要升级改造;如何让数据采集更加高效快捷,数据生产和数据呈现如何解耦?前后端分离的分层抽象离子是必不可少的。

前后端分离seo怎么做_前后端分离seo怎么办_前后端 分离 seo

通过前后端分离分层抽象:(1)站点展现层:node.js,负责数据展现和交互,由FE维护;(2)站点数据层:web-,负责业务逻辑和json数据接口的提供,由Java工程师维护;这样做有什么好处?(1)复杂的业务逻辑和数据生成只在站点数据层写一次,无需复制代码;(2)当底层接口发生变化时,只需要升级修改站点数据层的一部分;(3)如果底层有bug,只需要站点的一部分数据层需要升级修改;(4)站点表现层根据产品的不同形式,可以传入不同的参数,调用不同的站点数据层接口;另外还有其他很多优点:(1)产品追求绚丽效果,需要设备兼容ty 高,不再困扰Java工程师,由更专业的FE连接; (2)一点点改动,Java工程师无需重新编译、打包、上线、重启;(3)约定json接口后Java和FE分开开发,FE可以使用mock接口自行测试,不再等待联调;

前后端分离seo怎么做_前后端 分离 seo_前后端分离seo怎么办

所以,如上图所示,架构进化了,前后端分离了。

当业务越来越复杂,终端上的产品越来越多,表现层的变化越来越快,站点层的代码副本也越来越多,数据采集​​成为共同痛点,前后端分离抽象化,简化数据采集流程,提高数据采集效率,将底层复杂性与上游屏蔽。另外需要强调的是,是否需要前后端分离,与业务复杂程度、业务发展阶段、人员素质模型等有关。

要实现前后端分离,必须考虑以下四点。

第一点是SEO的考虑。如果是PC端网站,需要考虑是否需要对SEO的大力支持。前后端分离的架构很可能对搜索引擎不友好,可能会影响网站的收录。

当然,如果是原生APP,后端node.js只返回json数据,或者单页应用SPA(对于百度来说,就是一个页​​面),这个就不用考虑了问题。第二点是对产品特性的考虑。很多产品追求炫酷的前端效果,对前端的兼容性要求很高。前端产品改版频率很高,所以需要前后端分离。

否则,前后端分离只会给系统架构带来更多的复杂性。第三点是公司的发展阶段。公司发展初期,人少,对产品迭代速度的要求更高。这时候就需要更多的全栈工程师,开发由一个人从前到后完成。如果此时实施前后端分离,就会引入“联调”的概念,增加沟通成本比,可能导致产品迭代速度降低。第四,考虑人员技能。在传统的 FE 与后端 Java/PHP 工程师的合作方式中,FE 工程师不需要具备深厚的后端功底。一旦引入了前后端分离,node.js层的前端同学需要对后端知识体系有更多的了解。不排除部分FE同学拒绝后端技能,造成人员不稳定。总之,前后端分离不仅仅是分层架构的技术决策,而是与SEO、产品特性、公司发展阶段、人员知识体系等相关,绝不能一概而论。任何倒闭的建筑设计都是流氓。希望大家有所收获。

如果你喜欢这种谈论技术的方式,那就扫码一起玩吧。

前后端 分离 seo_前后端分离seo怎么做_前后端分离seo怎么办

有方法论,可以实现,视频会讲解结构

免责声明:本文来自网络用户投稿,不代表本站观点和立场。如有侵权请发送邮件至tzanseo@163.com告知本站删除,本站不负任何责任及承诺。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

发表评论

登录后才能评论