Web后端服务的“专业”开发流程

前言

你是一个后端程序员,需要开发一个服务,提供 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 补充文档

部署文档、运维指南、使用文档等等。有了这些就可以准备发布了。