通用开发流程
根据您提供的“以开发文档为核心的代码开发”流程,结合文档驱动开发(DDD,Document-Driven Development)的最佳实践,我对其进行了完善。主要改进了文档与代码的同步时机、增加了评审与验证环节,并明确了测试策略。完善后的流程如下:
以开发文档为核心的代码开发(完善版)
阶段一:概要设计
1. 输出概要设计文档
- 包含业务目标、系统边界、核心模块划分、技术选型、部署架构、关键数据流。
- 明确非功能性需求(性能、安全、可扩展性等)。
2.迭代循环(对每个章节)
2.1 团队评审 - 讨论核心方案的可行性、风险与替代方案,达成共识后冻结概要设计。
2.2 合并与文档同步 - 将更新后的设计文档提交至文档仓库(与代码版本关联)。
阶段二:详细设计
1. 输出详细设计文档
- 针对每个核心模块:接口定义(API/事件/数据库)、数据结构、状态机、流程图、错误处理、依赖关系。
- 细化功能点,给出模块间的交互时序图。
2. 迭代循环(对交互时序图)
2.1方案讨论与确认 - 开发、测试、运维共同参与,确保可测试、可部署、可观测。
2.2 合并与文档同步 - 将更新后的设计文档提交至文档仓库(与代码版本关联)。
阶段三:细分设计与实现(迭代循环)
1. 输出细分设计文档
- 将详细设计拆解为可独立实现的“功能切片”(如一个接口、一个类、一个前端组件),从核心模型向外围依赖(上游)逐层展开。
- 每个切片包含:输入/输出、前置/后置条件、测试用例预期、实现步骤清单。
2. 迭代循环(对每个切片)
- 2.1 编写测试用例(先于实现)
- 基于细分设计中的测试预期,编写单元测试或接口测试脚本(TDD 风格)。
- 2.2 实现功能
- 编写代码,使测试通过。遵循编码规范,添加必要的日志与监控埋点。
- 2.3 更新设计文档
- 若实现中发现设计偏差(如接口需调整、异常场景遗漏),立即更新 细分设计、详细设计、概要设计,保持文档与代码一致。
- 更新记录需标注变更原因与影响范围。
- 2.4 本地验证
- 运行新增及已有相关单元测试,确保功能正确且未破坏已有行为(回归测试)。
- 2.5 代码评审
- 提交代码前,团队成员检查代码与文档的一致性、逻辑正确性、可读性。
- 2.6 合并与文档同步
- 将代码合并到开发分支,同时将更新后的设计文档提交至文档仓库(与代码版本关联)。
阶段四:集成测试
- 构建集成测试环境
- 部署所有模块的集成版本,模拟真实外部依赖。
- 执行集成测试
- 基于详细设计中的交互场景,验证模块间接口、数据一致性、事务边界、并发问题。
- 文档与代码的最终校验
- 确保所有设计文档描述的行为与集成测试结果一致。
- 用户验收测试(可选)
- 交付业务方进行验收。
阶段五:发布与归档
- 生成版本快照,将概要设计、详细设计、细分设计及代码标签一并归档。
- 输出部署文档与运维手册(基于设计文档自动生成或同步)。
文档命名和迭代规范
概要设计1.md
详细设计1.md
细分设计1.md
每次loop对编号加1
核心原则补充
| 原流程问题 | 完善措施 |
|---|---|
| 设计在实现后才更新,容易遗忘 | 强制实现后立即更新文档(3.3),并作为完成定义的一部分 |
| 缺少测试先行 | 引入 TDD,编写测试用例早于实现(3.1) |
| 单元测试仅在串联后进行 | 每个切片独立单元测试,串联前已保证切片质量 |
| 缺少评审与反馈闭环 | 增加代码评审(3.5)和文档与代码一致性检查 |
| 集成测试与设计脱节 | 基于详细设计编写集成测试用例,结果反哺文档 |
此流程强调文档即真理(但允许变更受控),通过小步迭代、即时同步、测试驱动,确保代码与文档始终一致,适用于对可维护性、知识传承要求高的项目。

浙公网安备 33010602011771号