Web后端服务的“专业”开发流程
- Java
- 2021-03-30
- 1200热度
- 2评论
导航
前言
你是一个后端程序员,需要开发一个服务,提供 REST 接口给前端同学使用。你会怎么做?
- 业余选手:撸起袖子开始码,干就对了!啥时候写好啥时候算完。(我本科时的水平)
- 专业选手:遵循一套完整的开发流程,按部就班。风险、工期可预判。(我工作几年后的水平)
专业的开发流程是怎样的呢?继续看。
(这里的“专业”为什么打引号?因为只是一家之言,不具有权威性。由于我干了几年后端,又在工作中实际运用,所以可勉强称之为“专业”流程)
Step 1 需求评审
又叫 prd 评审。要参与进去,听产品经理讲需求,不合理的地方及时怼回去。
prd 评审结束后,需求就确定了。
Step 2 概要设计
- 思考大概的技术方案
- 做项目管理:把要做的事情拆解为一个个任务(详细设计、开发、冒烟测试、提测……),估算工作量,排期(一般会用 JIRA)
有时需要做概要设计的评审。有时只在脑子里做概要设计。
Step 3 详细设计
写详细设计文档,大概包含以下内容
- 补充背景:
- 需求分析与转化(把prd中的需求,转换为实际需要的开发工作)
- 基本假设
- 术语解释
- 风险分析与应对方案
- 整体开发思路
- REST API 文档(供前端使用)
- 架构图(可参考4+1视图)
- 关键技术点排坑(例如,后端服务涉及 SQL 查询,则把关键的 SQL 语句写出来)
- 工作量细化、更新(此时可以估算出相对准确的工作量)
写完文档之后,邀请一些大佬来参加你的详细设计评审会。反复被怼之后,详细设计定稿,准备上手开发。
Step 4 项目初始化
- 建 git 仓库,初始化代码。一般用 gradle + springboot(当然我指的是 Java 项目)
- 比较复杂的项目,可在此时提前划分模块,创建工具类
- CICD(初始化阶段有一个最简CI,后期逐步完善)
Step 5 写 open-api 文档
常用工具: https://swagger.io/
- 写 yaml 文件,详细描述你要开发的接口
- 发布正式的 html 格式接口文档
- 做好配置,一键生成接口相关的 controller 和 dto 类
Step 6 写业务代码
常用三层结构:
- Controller 层
- Service 层
- DAO/Repository 层
使用 TDD 开发,确保 UT 覆盖率达标。
分离可变项,多用配置文件。
关键部分加日志。
Step 7 自测
本地启动服务,用 postman 测一下,把接口功能调通。
Step 8 部署开发
写 Dockerfile,打包成镜像,部署到测试服务器上。(或 k8s 那一套)
Step 9 联调冒烟
前后端联调,跑通冒烟测试用例。然后可以提测了。(此处省略修bug的流程)
Step 10 补充文档
部署文档、运维指南、使用文档等等。有了这些就可以准备发布了。
TDD 会真的用上吗
看开发进度压力有多大了