从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开发流程
    从0-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、前后端分离交互图:

从0-1前后端分离规划和实施

4、前后端分离带来的效益
  • 1、专人做专事,更合理的利用资源
    术业有专攻,通过前后端分离,让前后端工程师只需要专注于前端或者后端的开发工作,更加发挥出各自的专长。
  • 2、提高工作效率,分工更加明确
    前后端分离的工作流程可以使得前端专心前端,后端关心后端,两者开发同时进行,提高工作效率,页面的增加和路由的修改也不必再去麻烦后端,开发更加灵活。
  • 3、局部性能提升
    通过前端路由的配置,我们可以实现页面的按需加载,无序一开始加载首页便加载网站的所有资源,服务器也不再需要解析前端页面,在页面交互及用户体验上有所提升。
  • 4、增强代码的可维护性
    前后端分离后,应用的代码不再是前后端混合,只有在运行期才会调用依赖关系,并且分层明确,应用代码变得整洁清晰。