半点优化网 http://www.bdxc.net/
当前位置首页 > 网站技术问题> 正文

程序员该如何正确理解前后端分离?

2022-04-22 07:22:40 暂无评论 93 网站技术问题 程序员   分离   前后

我喜欢这样的问题。

如果是问“什么是正确的前后端分离”,我还真不敢回答,生怕自己的理解有什么偏差;但是问怎么“理解前后端分离”,那我可以结合自身的工作,谈谈我对前后端分离的理解,也欢迎大家提出不同的理解。

我07年参加工作就是做企业级项目的开发,那时候的一些项目都只有一个包,没有什么代码规范,业务逻辑散落在各处,甚至是JSP中直接访问数据库并做业务处理。

后来逐渐有了一些规范,页面就是页面,代码就是代码,很多项目开始使用Ajax框架。

发展的更进一步,后端代码有了分层,cotroller/service/dao,可能每个项目分层策略不同(三层和两层居多),每层的叫法不同(cotroller还是action),数据从页面到最后访问数据库,需要走到多个分层中。

不过到了此阶段,在企业级项目的开发过程中,Java程序员依然要兼顾前后端的开发,所以前端页面的样子嘛,达不到美观的程度,也就是能用。

继续发展,很多项目开始变成了前后端分离。对于前后端分离的定义我是这样理解的:

页面是页面,代码是代码,但是他们在一个包中,这个肯定不能算前后端分离;

前端页面一个程序包,后台代码一个程序包,两个包都需要部署到Tomcat上,前端调用后台的接口;我认为这个也不是严格的前后端分离,但是我觉的这样做也没有问题;

如果前端只有HTML文件,放到HTTP服务器上,浏览器只访问获取这些HTML就好了,数据是从后台程序提供的接口获得;这样才算是前后端就分离了。

前后端分离有很多的好处:前端开发和后端开发可以各司其职,约定好接口之后就可以并行开发;后端接口可以复用,如果项目同时有电脑网页端、移动网页端、APP端等多个入口的时候,后端可以只有一个;

带来好处的同时,也会有一些缺点,例如:增加了架构的复杂性,如果技术能力不足的团队,可以考虑半分离(例如我们部门都是企业级应用,都没有前端开发人员);如果是面向互联网的应用,需要搜索引擎抓取,就需要服务器端渲染;另外前后端交互的接口,也需要花时间和精力设计。

最后,是否需要使用前后端分离,还需要根据项目的实际情况决定。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

猜你喜欢