前后端分离这个说法其实在数年前就已经出现,但是直到现在还有很多人对其存在误解,误认为前后端分离就是在Web项目的开发过程中,做到前后端分别开发的一种模式。实则不然,前后端分离其实是一种架构模式,它不仅体现在开发过程中对前后端进行了分离,更在应用部署、后续维护等阶段都分别执行分离的操作。
下面我们就前后端分离做一个简单的分析和总结,我会就3个方面对其进行说明:为何要进行前后端分离、前后端分离的好处以及如何进行前后端分离。
1. 为何要进行前后端分离
开发效率低下
我们先简单描述一下在前后端分离出现之前,一个javaWeb项目是如何进行开发的。
产品经理提出需求➡️UI进行页面设计➡️前端将设计图转换为HTML页面➡️将页面交由java开发人员进行数据对接,转为jsp页面➡️需求更改➡️前端返工➡️后端返工➡️再次对接➡️完成
可以看出,在一个项目的开发过程中,涉及到了前后端人员多次的交接。在后台人员接好一个页面之后,是将该页面集成在java项目中的。耦合度极高。如果遇到需求反复修改,前后端人员需要不断地循环对页面进行修改、嵌套数据,极大降低开发效率。
代码可维护性弱
在传统的开发中,页面的代码是集成在javaWeb项目里的。前后端的代码统一保存和修改。不论是前端的代码还是后端的代码出问题,都需要在一个项目中进行查找和修改。在修改时,又会遇到某个页面被其他页面调用,改了A页面,B页面受到了影响等问题。剪不断,理还乱。😔
不论是对前端人员还是后端人员来说,有自己的一亩三分地多好!🤔
无法应对前端复杂的业务需求
时至今日,用户不仅关心一个软件是否能用,而且对于它是否好用提出的更多的要求。用户不仅需要简单直观的数据展示,更需要炫酷、靓丽、个性化的操作界面。这使得前端相比前几年变得越来越重要。现在的前端和前两年的前端已经不可同日而语。他们需要掌握越来越多的技能来满足口味日渐挑剔的用户。并且在进入移动终端时代,前端也还要满足不同终端的适配。
现在的一个Web应用,前端在其中占据了比之前更大的比重,这样的情况使得传统的开发模式不堪重负。
以上是简单列举的几个方面,我们可以看到,造成这些问题的一个最主要的原因就是前后端的代码和开发进度耦合度极高。
2. 前后端分离的好处
就上面所说的三点,我们再来看看前后端分离之后又有哪些好处。
提升开发效率
前后端分离之后,可以实现前后端代码的解耦。我们再来看看分离之后一个javaWeb项目的开发流程:
产品经理提出需求➡️UI进行页面设计➡️前后端并行开发➡️ 前后端对接 ➡️需求更改➡️前端返工或后端返工➡️再次对接➡️完成
在分离之后,只要在开发前期,前后端人员对所需接口以及接口的参数做出约定,就可以并行开发,互不影响。后端人员不再需要等待前端人员的页面,前端人员也不再需要受制于后端项目。极大地提高了开发效率。
增强代码可维护性
前后端分离之后,代码会分成两个项目来进行保存和修改。对于前后端人员,无论是代码的阅读还是和维护都将变得更加轻松。
他们各自终于有了自己的一亩三分地!😄😄😄
可更好地应对日益复杂的前端页面
将前端从原来的整个项目中抽离出来之后,能够更好地专注于前端的开发。开发效率和能力都将带来提升。
现在专人做专事,比之前更加专业,这也催生了目前流行的“大前端”。现在的前端发展得更加系统化,他们也有包管理工具、路由管理、cookies管理等工具。
同样的,后端人员也可以更加专注于数据和业务,而不用再为了前端页面犯愁了。😆😆😆
3. 如何进行前后端分离
在文章开头我们也讲了, 前后端分离并非仅仅只是一种开发模式,而是一种架构模式(前后端分离架构)。
千万不要以为只有在敲代码的时候把前端和后端分开就是前后端分离了,前后端分离,需要区分前后端项目。 前端项目与后端项目是两个项目,放在两个不同的服务器,需要独立部署,两个不同的工程,两个不同的代码库,不同的开发人员。
前后端工程师需要约定交互接口,实现并行开发,开发结束后需要进行独立部署,前端通过ajax
来调用http
请求调用后端的restful api
。
前端只需要关注页面的样式与动态数据的解析和渲染,而后端专注于具体业务逻辑和数据地提供。
前后端分离的项目在部署的时候也需要分开来部署,目前流行的方式有以下几种:
- Node+Server
- Nginx+Server
- Nginx+Node+Server
4. 总结
对于传统的混合开发模式,历经时间的考验,到现在虽然也能经得起大部分项目的开发,但是放眼未来,我们还是需要将前后分开,让彼此更加专业化、精细化。这便是未来发展的趋势。
End
感谢您阅读到此
本文版权归作者所有,欢迎转载
转载必须在醒目位置标明作者与出处
欢迎浏览我之前的文章: