前后端分离开发流程
新框架前后端完全分离,后端基于SpringBoot提供 ResultFul的接口服务,前端是基于Layui的全静态页面,这样就对我们的开发流程提出新的要求。
后端人员:按照约定提供经过单元测试的Restful API接口,使后端更关注业务逻辑的实现。
前端人员:按界面要求完成页面的展现开发和逻辑跳转,使前端更关注页面的布局样式和交互。
开发流程规范:
1、共同约定接口、并维护至DOCLever
前后端人员和项目相关成员,在设计完成后,根据页面和数据库进行梳理,确定调用接口个数和功能,在DOCLever上维护要开发的接口,包括入参和出参。
接口约定是前后端人员后续联调开发的基础,如在开发过程中接口发生变化要及时调整,并告知对方。
DOCLever 使用地址:http://114.112.193.6:32500/html/web/controller/index/index.html
2、前端开发页面,并使用模拟数据调试
前端人员根据页面设计,参考Demo,进行开发页面
使用NodeJS,模拟请求DOCLever服务端Mock生成的数据,进行调试和页面跳转测试(DOCLever的Mock使用指南请点击查看)
3、后端开发服务端、并进行单元测试
服务端人员开发 entity、dao、service、controller 编写业务逻辑。(可使用代码生成工具生成,进行修改,具体使用方法请点击查看)
使用MockMvc 编写单元测试,对开发功能进行测试。(具体使用方法,请点击查看)
4、前后端本地联调
使用NodeJS,代理转发请求到后端开发人员机器进行联调
直接连开发机器联调,需要修改前台net.js中sysRoot=后台接口api地址/contextPath值,后台需要检查是否开启跨域(regie.isCorsOpen=true)
5、Nginx部署联调
将开发的服务端,打包部署到服务器
将开发的页面,打包部署到Nginx,并配置转换地址进行联调。
项目开发的一般流程:
->需求会议
- 产品经理宣讲项目需求内容,有任何疑问会上及时提出,会后自己估算工作量与开发工期。
->排期会议
- 根据自己估算的工作量给出相应排期时间,排期时间分为开发时间 + 联调时间。
- 开发时间为自己开发用时,联调时间为所有开发共同调试时间,此时需在测试环境接入接口调试。
- 联调之前需将绝大部分开发工作完成,部分需要在联调阶段才能完成的工作可在联调时间内完成。 开发之前
- 通常在开发之前后端开发会先给出协议文档,文档内容为会用到的接口,与接口大致返回的数据,拿到协议文档,先看一遍,哪里不对或者缺少什么字段及时向后端提出并修改。
->项目开发
- 从 master 分支拉开发分支,并根据要求的分支命名格式进行命名
->项目联调
-
环境分支一般分为: dev(开发)、stg(联调、测试)、pre(测试)、gra(灰度环境)、prd(线上环境)。
-
联调通常在 stg 上进行,后端代码发布 stg 环境后,前端可在本地环境调试 stg 环境接口。
->showcase会议(向测试人员展示开发的功能。)
- 通常在联调最后一天的下午会进行,向测试人员展示开发的功能。
- showcase 上的发现问题会后需要及时修改,如有严重阻塞主流程的问题,项目会被测试同学打回,showcase
失败。需在修改完成后重新进行 showcase。
->项目提测
- showcase 中的问题修改完后由项目开发负责人写提测邮件提测。
->项目debug
项目debug需要在相关平台上进行展示出来并设置其重要程度和需花费的时间
->项目发布
- 发布对应环境代码时,将自己的开发分支合并到对应环境分支,发 stg 代码则合并到 stg 分支,发 pre、gra、prd 环境都是合并到release 分支,master 分支存放线上运行稳定代码。
- 环境发布顺序为:stg->pre->gra->prd,一般按照此顺序发布,前面环境测试通过后才可发布到下一个环境。代码发布线上确认运行稳定后将分支合并到master 分支。