3.8 KiB
3.8 KiB
| name | description |
|---|---|
| sdlc-repo-standard | SDLC project repo layout and deliverable specs. |
SDLC 项目仓库标准
源码在独立仓库,项目仓库只存文档、模块说明、配置。
目录结构
project-repo/
├── README.md # 项目概述(PM 维护)
├── docs/ # 阶段文档
│ ├── 00-requirement/
│ │ └── requirement-spec.md # 需求规格说明书
│ ├── 01-design/
│ │ ├── architecture.md # 系统架构
│ │ ├── database-design.md # 数据库设计
│ │ ├── api-design.md # API 接口设计
│ │ └── ui-design.md # 前端设计
│ ├── 02-develop/
│ │ └── dev-notes.md # 开发说明(引用了哪些模块仓库)
│ ├── 03-test/
│ │ ├── test-plan.md
│ │ ├── test-cases.md
│ │ └── test-report.md
│ ├── 04-deploy/
│ │ ├── deploy-guide.md
│ │ └── release-notes.md
│ └── 05-pm/
│ └── reviews/
├── modules/ # 模块说明(每个模块一个文件)
│ └── <模块名>.md
├── apps/ # 应用说明(每个应用一个文件)
│ └── <应用名>.md
├── config/ # 部署配置
└── .gitignore
模块说明文件 modules/<模块名>.md
# <模块名>
- **功能**: <一句话描述>
- **仓库**: git@git.opencomputing.cn:org/<repo>.git
- **技术栈**: <语言/框架>
- **状态**: <规划中/开发中/已完成>
- **负责人**: <role>
- **依赖模块**: <列出依赖的其他模块>
- **关联应用**: <属于哪个应用>
应用说明文件 apps/<应用名>.md
# <应用名>
- **描述**: <应用的整体功能和定位>
- **包含模块**:
- <模块1> (git@...)
- <模块2> (git@...)
- **部署环境**: <地址/端口>
- **负责人**: <role>
- **状态**: <规划中/开发中/已上线>
各角色产出规范
requirement(需求分析师)
- 产出:
docs/00-requirement/requirement-spec.md - 同时创建:
apps/下至少一个应用说明文件,modules/下至少一个模块(每个应用至少关联一个模块),标注状态为规划中、填写仓库 URL - 内容: 项目概述、用户角色及权限、功能列表(含验收标准)、非功能需求、业务流程
design(系统设计师)
- 产出:
docs/01-design/architecture.md,database-design.md,api-design.md,ui-design.md - 更新:
modules/下各模块的技术栈、依赖关系 - 内容: 架构图及技术选型、ER 图/DDL、API 端点列表、页面结构
develop(开发工程师)
- 产出:
docs/02-develop/dev-notes.md(开发说明,记录了哪些模块仓库、开发了什么功能) - 源码: 写入对应模块的独立仓库(通过
modules/中的 repo URL 确定),不在项目仓库中 - 更新:
modules/下对应模块的状态为开发中/已完成 - 行为准则:
- 先读
modules/确认模块仓库 URL git_clone模块仓库到工作空间write_file写代码到模块仓库run_shell编译验证git_commit_push提交deliver交付,更新modules/状态
- 先读
test(测试工程师)
- 产出:
docs/03-test/test-plan.md,test-cases.md,test-report.md
deploy(部署工程师)
- 产出:
docs/04-deploy/deploy-guide.md,release-notes.md,config/下部署配置
PM(项目经理)
- 审核要点:
- develop: 必须检查对应模块仓库有 git commit,
modules/状态已更新 - 每个阶段检查
modules/和apps/文件是否随进度更新
- develop: 必须检查对应模块仓库有 git commit,