通用开发流程

根据您提供的“以开发文档为核心的代码开发”流程,结合文档驱动开发(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. 构建集成测试环境
    • 部署所有模块的集成版本,模拟真实外部依赖。
  2. 执行集成测试
    • 基于详细设计中的交互场景,验证模块间接口、数据一致性、事务边界、并发问题。
  3. 文档与代码的最终校验
    • 确保所有设计文档描述的行为与集成测试结果一致。
  4. 用户验收测试(可选)
    • 交付业务方进行验收。

阶段五:发布与归档

  • 生成版本快照,将概要设计、详细设计、细分设计及代码标签一并归档。
  • 输出部署文档与运维手册(基于设计文档自动生成或同步)。

文档命名和迭代规范

概要设计1.md
详细设计1.md
细分设计1.md
每次loop对编号加1

核心原则补充

原流程问题 完善措施
设计在实现后才更新,容易遗忘 强制实现后立即更新文档(3.3),并作为完成定义的一部分
缺少测试先行 引入 TDD,编写测试用例早于实现(3.1)
单元测试仅在串联后进行 每个切片独立单元测试,串联前已保证切片质量
缺少评审与反馈闭环 增加代码评审(3.5)和文档与代码一致性检查
集成测试与设计脱节 基于详细设计编写集成测试用例,结果反哺文档

此流程强调文档即真理(但允许变更受控),通过小步迭代、即时同步、测试驱动,确保代码与文档始终一致,适用于对可维护性、知识传承要求高的项目。

posted @ 2026-05-14 10:28  静水深耕,云停风驻  阅读(1)  评论(0)    收藏  举报