从0-1前后端分离规划和实施
1、背景:
原项目结构:struts2+spring+ibatis
2、为什么前后端分离:
首先主要有如下三个原因:原老项目采用struts2+spring+mybatis框架,通过jsp页面渲染页面完成数据展示。
这样造成了用户满意度效率和成本等问题:
- 1、用户满意度:
运营和商家对于前端界面交互要求越来越高,后端工程师对js,css等内容达不到相应的高度。- 2、效率和成本:
开发效率和时间成本,后端需要独立完成MVC框架以及jsp页面的渲染,效率依然不高。时间成本周期较长,做出的界面效果不具美感。- 3、后端能力局限性:
后端能力局限性,一些组件图标插件是不支持jsp页面,另外还有性能交互的优化。
所以我在调研日常用户的需求之后,与产品经理协商进行前后端分离规划如下:所有的界面和数据展示统一由前端管理相当于view层,man端和shop端主要负责对接不同用户相当于controller层,中心端处理核心业务逻辑相当于Model层。
2.1、项目安排
- 1.1时间排期:
预计6月中旬进入—至7月底。- 1.2人力排期:
根据交互和前端和后端统一排期
2.2、职能安排
- 2.2.1开发流程
![]()
- 2.2.2约束规范
前后端交互接口统一维护文档。
如有单方变动文档,及时同步(方式邮件抄送或者其他通讯工具告知)。
2.3、技术框架
- 2.3.1前端
技术栈:react.js,es6
- 2.3.2后端
技术栈:
语言:java
语言开发环境:jdk8
框架:springboot2.0
服务器:tomcat8
- 3.3测试
2.4、前后端交互规范
- 2.4.1 restful风格前后端交互
- 2.4.2 mock虚拟支持并行开发
3、前后端分离交互图:
4、前后端分离带来的效益
- 1、专人做专事,更合理的利用资源
术业有专攻,通过前后端分离,让前后端工程师只需要专注于前端或者后端的开发工作,更加发挥出各自的专长。- 2、提高工作效率,分工更加明确
前后端分离的工作流程可以使得前端专心前端,后端关心后端,两者开发同时进行,提高工作效率,页面的增加和路由的修改也不必再去麻烦后端,开发更加灵活。- 3、局部性能提升
通过前端路由的配置,我们可以实现页面的按需加载,无序一开始加载首页便加载网站的所有资源,服务器也不再需要解析前端页面,在页面交互及用户体验上有所提升。- 4、增强代码的可维护性
前后端分离后,应用的代码不再是前后端混合,只有在运行期才会调用依赖关系,并且分层明确,应用代码变得整洁清晰。