学习过程中个人对前后端分离的简单见解


【前后端分离的来源】

我认为由于这些年来随着信息化程度的加深,越来越多服务的web化。其实前端需要展示的东西越来越复杂,导致像之前的JSP,Jquery等无法满足高效的开发,在做这些复杂页面的时候会非常繁琐。还有就是前端需要更新版本时,还需要丢到后端等着后端来实现等等因素导致前后端耦合高。

导致其本质的原因还是前端没有像后端那样用Spring等框架maven依赖等工程化、模块化、可复用化的思维来做,这就必然会导致前端开发各种不协调化,效率低的问题。

所以我们需要前后端的事情分开来做,给前端开发工程师正名,把前端开发的责任从后端拿掉,给他们独立的责任领域,不用以前野生的开发模式,前端也需要工程化,项目化的思维来做。


【前后端分离技术问题】

许多前端开发人员会认为,前端开发很繁琐,没有像后端Java开发那样有逻辑性,和可以满足长期演进和迭代的目标。而且前后端耦合性大,有时候前端还需要依赖后端。
所以像Vue.js和React.js等这些前端开发工程化框架的出现本质上改变了前端开发的游戏规则,不需要时时依赖后端可以独立驱动页面,使得前端开发越来越工程化、组件化、自主化,而且有许多现成的页面组件使得前端代码得到更好更便捷的复用。


【真正的前后端分离】

真正的前后端分离应该渗透到设计、开发、测试、部署每一步中。实现前端、后端独立的设计,开发,测试,和独立的部署,互相之间不影响。

前端后端通过接口来进行交互,接口约定好数据的格式,请求方式等等。这样前后端按照约定的接口进行独立发开,独立测试等工作。


【前后端分离是否必要】

我认为前后端分离比较适合复杂的项目,其本质上并不是什么技术问题,实际上是一个工程化考量和项目管理的问题。
前后端分离需要较多的成本,不管是人力成本,开发成本,工具成本,部署成本等都不小。如果像一些小项目强行进行前后端分离,只要有一点做得不彻底,实际上反而会带来更多负担而不是便利性了。所以分离需要考量性价比,不要为了前后端分离而进行前后端分离。