全栈才是未来

近几年一个很大的趋势可能就是前后端分离了,明面上的好处可能也不只这些:

  1. 前端解放了,前端不再仅仅是切图的了,可以实现跳转路由等复杂逻辑
  2. 一定程度上提高工作效率,前后两波人只通过定义好的接口交互,两部分代码不再混在一起了
  3. 部分性能提升,服务器不需要渲染模板,将这部分工作扔到了浏览器,同时还节约流量
  4. ...

本文主要还是想唱一下反调,说说背面带来的一些问题

开发效率

先说开发效率,前后端分离提升了开发效率吗?

结论恐怕是没有

关于效率的定义,不是指十天做完了一个项目,效率就是 10,而是要按照项目完成的整体人月来看

在传统模式下,前端只负责切图那么一个项目需要的前端人员数量是非常少的,只要提供页面其它工作交由后端处理即可。

分成两波人后第一件被带出来的就是联调,由于部分功能扔给前端做了,前端人员数量势必增加,联调时间完全是新出来的时间,只要统筹算一下人月,效率肯定是降低了的。

可能有人反驳,接口可以提前约定压缩联调时间之类的啊,但这个引进来一个问题就是“定义接口”这件事情本身在传统模式里就是不存在的,这也是多出来的人日

排查问题效率

传统模式下,根据页面链接直接可以定位具体的逻辑,传统模式你告诉开发哪个功能有啥异常现象,他大概率可以直接想到哪行代码可能存在问题

但现在明显不行了,问题来了找谁呢,找后端?后端只面向接口,你和他说功能有问题明显用处没那么大。

于是只能找前端,前端先排查哪个接口返回的哪个值不符合预期,再拿着接口找后端,后端再继续排查,这个链路明显加长。

面向接口开发

由于后端只面向接口,这也导致了一个更严重的问题,没有人可以掌控全局了,传统模式下根据功能直接联想到代码的技能基础已经不存在了。

咱们在开发过程中会特别佩服那些对整个项目了解特别清楚的人,要改哪个功能立马联想到可能影响到哪些地方,这种人的存在是极大有利于项目的整个生命周期的。

因为功能并不是后端做的,这个页面后端可能根本没有印象或者没有见过,例如原本的 PC 端功能迁移到了 M 端,这种情况下接口是没有改动的,开发过程也基本不需要后端参与,那么后端可能根本都不知道这个功能的存在,同时了解接口和功能的人反而成了测试。

传统模式下,后端在开发自己功能的时候关联着也会把别人的功能点一点,整个项目有啥功能是有概念的,能力充裕的相关代码也扫几眼于是就成了那个可以 "掌控全局" 的人。

但新模式下后端面向的只有一堆接口和单元测试,日常开发、测试、改BUG根本见不到功能在哪,皮之不存毛将焉附。

全栈才是未来

前后端分离服务器器压力是降低了,但这同时也带来了 SEO 的问题,唯一可能的解决方案是 NodeJS,那么是不是又回到了传统模式的老路上,只是将开发语言从 java 换成了 js,是不是成了 js 技术体系下的全栈。

所以这么数下来会发现,只有全栈才是未来

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注