128 lines
2.8 KiB
Markdown
128 lines
2.8 KiB
Markdown
---
|
||
name: dev-design
|
||
description: 开发流程 - 设计阶段,技术选型与细节设计,产出设计文档
|
||
---
|
||
|
||
# 设计
|
||
|
||
> 开发流程第二阶段:基于需求文档进行技术选型和细节设计。
|
||
|
||
## 调用方式
|
||
|
||
`/dev-design`,也可说"开始设计"。
|
||
|
||
## 产出目录
|
||
|
||
`docs/design/`
|
||
|
||
## 执行流程
|
||
|
||
### Checklist
|
||
|
||
- [ ] 前置检查:读取需求文档
|
||
- [ ] 探索现有代码库
|
||
- [ ] 技术选型
|
||
- [ ] 前端风格设计(如涉及)
|
||
- [ ] 细节设计循环
|
||
- [ ] 用户确认并保存
|
||
|
||
### 1. 前置检查
|
||
|
||
- 读取 `docs/requirements/` 目录下的需求文档
|
||
- 如果不存在,提示用户先运行 `/dev-requirement` 完成需求分析
|
||
- 用户可选择跳过(直接进入设计)
|
||
- 展示需求文档摘要,确认设计范围
|
||
|
||
### 2. 探索现有代码库
|
||
|
||
- 查看项目文件结构
|
||
- 识别现有技术栈(package.json、pyproject.toml 等)
|
||
- 了解现有架构模式
|
||
- 识别可复用的模块和接口
|
||
|
||
### 3. 技术选型
|
||
|
||
识别需要做出的技术决策,逐个讨论:
|
||
|
||
**规则:**
|
||
- 每个决策点提出 2-3 个方案
|
||
- 说明每个方案的优缺点
|
||
- 给出推荐方案和理由
|
||
- 使用多选方式让用户选择
|
||
|
||
**常见决策点:**
|
||
- 框架选择
|
||
- 数据库/存储方案
|
||
- 状态管理方案
|
||
- API 风格(REST/GraphQL/RPC)
|
||
- 认证方案
|
||
|
||
### 4. 前端风格设计(如涉及)
|
||
|
||
如果项目涉及 UI:
|
||
- 询问视觉风格偏好
|
||
- 确定配色方案、字体、间距规范
|
||
- 确定组件库(如有)
|
||
- 确定布局模式
|
||
|
||
如果项目不涉及 UI,跳过此步骤。
|
||
|
||
### 5. 细节设计循环
|
||
|
||
按以下维度逐个展开设计,每个维度分段展示给用户确认:
|
||
|
||
**模块划分:**
|
||
- 将系统拆分为职责单一的模块
|
||
- 每个模块有清晰的边界和接口
|
||
|
||
**数据模型:**
|
||
- 核心数据结构定义
|
||
- 数据关系
|
||
- 存储方案
|
||
|
||
**接口设计:**
|
||
- 模块间接口 / API 端点
|
||
- 输入输出规范
|
||
- 错误码定义
|
||
|
||
**错误处理:**
|
||
- 异常场景识别
|
||
- 错误处理策略
|
||
- 边界情况处理
|
||
|
||
### 6. 保存设计文档
|
||
|
||
按以下模板保存:
|
||
|
||
```markdown
|
||
# 设计文档:<项目名称>
|
||
|
||
> 创建日期:YYYY-MM-DD
|
||
> 对应需求:docs/requirements/YYYY-MM-DD-xxx.md
|
||
> 状态:已确认
|
||
|
||
## 1. 技术选型
|
||
| 决策点 | 选择 | 理由 | 备选方案 |
|
||
|-------|------|------|---------|
|
||
|
||
## 2. 架构设计
|
||
### 整体架构
|
||
### 模块划分
|
||
| 模块 | 职责 | 依赖 |
|
||
|------|------|------|
|
||
|
||
## 3. 数据模型
|
||
## 4. 接口设计
|
||
## 5. 前端设计(如适用)
|
||
## 6. 错误处理与边界情况
|
||
```
|
||
|
||
保存为 `docs/design/YYYY-MM-DD-<项目名>.md`,提示下一步可调用 `/dev-tdd` 生成测试用例(测试先行)。
|
||
|
||
## 关键行为
|
||
|
||
- 技术选型基于项目实际约束,不盲目追求新技术
|
||
- 设计文档中的每个需求都能追溯到需求文档
|
||
- 前端风格仅在涉及 UI 时展开
|
||
- 模块划分遵循单一职责原则
|