前后端分离的项目开发策略已经不是什么新鲜东西了,网上介绍这方面的文章非常多。我自己是在14年的时候接触到的,对这种开发策略一直爱不释手,不管新老项目都会首先用前后端分离的思维先去思考一番。从14年到现在在前后分离上面也实践了近3年的时间,项目大大小小的也差不多4,5个吧,但是却从来没有一个是自己觉得很满意的,其中的原由和心酸可能只有自己才能体会了。
前后端分离实践有感
现在到处都是前后端分离的实践。然而一些项目在从一体化 Web 设计转向前后端分离的架构时,仍然会碰见各种各样的问题。由于层出不穷的问题,甚至会有团队质疑,一体化好好的,为什么要前后端分离?
首先看看前后端分离是什么?
“前端”通常指的是,相对来说更接近用户的一端,例如:APP,网页、桌面程序等,在现实开发中大部分情况可以理解为“客户端”;
“后端”相对来说就更泛化了,可以理解为是为前端提供服务的一端。
”分离“顾名思义就是将”前端“和”后端进行分开“,但是这里的分开主要从下面几个纬度进行分离
1:架构分离,前端不需要依赖后端架构同时后端也不需要知道前端使用何种架构
2:人员分离,前端后端使用的技术相互之间根部不需要相互了解完全可以在做到透明(当然相互了解会更好)
3:工作分离,基于项目或者产品的单个功能的横向进行工作分离,任务划分更细
4:关注点分离,前端偏向用户,后端偏向系统本身
下面分别是一体式web架构示意图和前后分离式web架构。
一体式 Web 架构示意
前后分离式 Web 架构示意
为什么要前后端分离
下面讲讲什么时候需要前后端分离,即前后端分离的应用场景。
说起这个问题,我想到了多年前,公司在以 .NET 开发团队为主的基础上扩展了 Java 团队,两个团队虽然是在做不同的产品,但是仍然存在大量重复性的开发,比如用 ASP.NET WebPage 写了组织机构相关的页面,用 JSP 又要再写一遍。在这种情况下,团队就开始思考这样一个方案:如果前端实现与后端技术无关,那页面呈现的部分就可以共用,不同的后端技术只需要实现后端业务逻辑就好。
方案根本要解决的问题是把数据和