design-doc

📁 baoruxing/code-common 📅 Today
2
总安装量
1
周安装量
#71458
全站排名
安装命令
npx skills add https://github.com/baoruxing/code-common --skill design-doc

Agent 安装分布

amp 1
opencode 1
cursor 1
kimi-cli 1
codex 1
github-copilot 1

Skill 文档

设计文档生成器

根据需求文档自动生成符合公司《ERD规范文档1.4》标准的完整设计文档。

快速开始

使用方式

自动触发: 当用户要求生成架构设计文档或详细设计文档时,自动生成配套的设计文档。

手动触发: 用户提供需求文档,明确要求生成设计文档。

输入: 需求文档 (PRD)
     ↓
配置: 选择数据库类型 (MySQL/PostgreSQL) + 开发语言 (Java/Python)
     ↓
分析: 提取业务实体、流程、接口、性能要求等
     ↓
输出: 完整设计文档(11个章节)

配置选项

生成设计文档前,需要确认以下配置:

配置项 选项 说明
数据库类型 MySQL / PostgreSQL 影响表结构DDL语法和数据类型定义
开发语言 Java / Python 影响接口示例代码和注解风格

默认配置: 数据库 = MySQL,开发语言 = Java

如未指定,使用默认配置生成文档。

文档结构

遵循公司《ERD规范文档1.4》标准,设计文档包含以下章节:

章节 说明 必填
1. 需求文档地址 PRD文档链接或禅道链接 是
2. 技术方案设计图 架构图、技术流程图、系统时序图 是
3. 数据结构设计 ERD图、DB表结构设计 是
4. 接口设计 接口文档、第三方接口依赖 是
5. 相关性能评估 性能目标、资源评估 是
6. 异常设计 报警、重试、幂等、降级等 是
7. 灰度方案 灰度设计图(可选) 条件必填
8. 初始化数据 初始化范围、数据处理方案 条件必填
9. 安全及风险评估 风险点、兼容性、数据脱敏 推荐
10. 是否增设看盘 看盘数据追踪设置 推荐
11. 工作量评估 开发时间、联调时间、测试时间 是

1. 需求文档地址

1.1 格式规范

提供需求文档的访问地址,可以是:

类型 格式示例 说明
文档URL http://wiki.example.com/prd/xxx 内部Wiki地址
禅道地址 https://zentao.example.com/prd-view-xxx.html 禅道需求地址
文档路径 docs/prd/项目需求文档.md 相对路径

1.2 示例

## 1. 需求文档地址

- **PRD文档**: http://wiki.example.com/prd/订单管理系统
- **禅道地址**: https://zentao.example.com/prd-view-1001.html
- **本地文档**: `../../docs/prd/订单管理系统_v1.0.md`

2. 技术方案设计图

2.1 架构图

使用 Mermaid Flowchart 绘制系统分层架构图。

2.1.1 分层架构图

flowchart TB
    subgraph "前端层"
        Web[Web前端<br/>Vue3 + ElementPlus]
        Mobile[移动端<br/>UniApp]
    end

    subgraph "网关层"
        Gateway[API网关<br/>Spring Cloud Gateway]
    end

    subgraph "应用层"
        UserService[用户服务<br/>user-service]
        OrderService[订单服务<br/>order-service]
        PaymentService[支付服务<br/>payment-service]
    end

    subgraph "数据层"
        DB[(MySQL数据库)]
        Cache[(Redis缓存)]
        MQ[(RabbitMQ消息队列)]
    end

    Web --> Gateway
    Mobile --> Gateway
    Gateway --> UserService
    Gateway --> OrderService
    Gateway --> PaymentService
    UserService --> DB
    OrderService --> DB
    PaymentService --> DB
    UserService --> Cache
    OrderService --> Cache
    OrderService --> MQ

2.1.2 微服务架构图

flowchart LR
    subgraph "接入层"
        LB[负载均衡]
    end

    subgraph "网关层"
        GW[API网关]
    end

    subgraph "服务层"
        S1[用户服务]
        S2[订单服务]
        S3[商品服务]
        S4[支付服务]
    end

    subgraph "基础设施"
        Nacos[注册中心]
        DB[(数据库)]
        Redis[(缓存)]
    end

    LB --> GW
    GW --> S1
    GW --> S2
    GW --> S3
    GW --> S4
    S1 --> Nacos
    S2 --> Nacos
    S3 --> Nacos
    S4 --> Nacos
    S1 --> DB
    S2 --> DB
    S3 --> DB
    S4 --> DB
    S1 --> Redis
    S2 --> Redis
    S3 --> Redis

2.2 技术流程图

使用 Mermaid Flowchart 绘制单模块内的业务流程图。

flowchart TD
    A[用户登录] --> B{验证用户名密码}
    B -->|失败| C[返回错误信息]
    B -->|成功| D[生成Token]
    D --> E[缓存到Redis]
    E --> F[返回登录结果]

2.3 系统时序图

使用 Mermaid Sequence Diagram 绘制系统时序图。

2.3.1 用户登录时序图

sequenceDiagram
    actor User as 用户
    participant Frontend as 前端
    participant Gateway as API网关
    participant UserService as 用户服务
    participant DB as 数据库
    participant Redis as 缓存

    User->>Frontend: 输入用户名密码
    Frontend->>Gateway: POST /api/v1/auth/login
    Gateway->>UserService: 转发登录请求
    UserService->>DB: 查询用户信息
    DB-->>UserService: 返回用户数据
    UserService->>UserService: 验证密码哈希
    UserService->>Redis: 生成Token并缓存
    UserService-->>Gateway: 返回Token
    Gateway-->>Frontend: 返回登录结果
    Frontend-->>User: 登录成功提示

2.3.2 订单创建时序图

sequenceDiagram
    actor User as 用户
    participant OrderService as 订单服务
    participant StockService as 库存服务
    participant PaymentService as 支付服务
    participant MQ as 消息队列

    User->>OrderService: 创建订单请求
    OrderService->>StockService: 扣减库存
    StockService-->>OrderService: 扣减成功
    OrderService->>OrderService: 创建订单记录
    OrderService->>MQ: 发送订单创建事件
    OrderService->>PaymentService: 发起支付
    PaymentService-->>User: 跳转支付页面

3. 数据结构设计

3.1 ERD图

使用 Mermaid ER Diagram 绘制实体关系图。

erDiagram
    USERS ||--o{ ORDERS : places
    USERS ||--o{ USER_ROLES : has
    ORDERS ||--|{ ORDER_ITEMS : contains
    PRODUCTS ||--o{ ORDER_ITEMS : in
    ORDERS }|--|| PAYMENTS : paid_by
    PRODUCTS ||--o{ SKU_STOCK : has

    USERS {
        bigint id PK
        varchar username UK
        varchar email UK
        varchar password_hash
        varchar phone
        tinyint status
        timestamp created_at
        timestamp updated_at
    }

    ORDERS {
        bigint id PK
        bigint user_id FK
        varchar order_no UK
        decimal total_amount
        tinyint status
        timestamp created_at
        timestamp updated_at
    }

    ORDER_ITEMS {
        bigint id PK
        bigint order_id FK
        bigint product_id FK
        bigint sku_id FK
        int quantity
        decimal unit_price
        decimal total_price
    }

    PRODUCTS {
        bigint id PK
        varchar name
        decimal price
        tinyint status
        timestamp created_at
    }

    SKU_STOCK {
        bigint id PK
        bigint product_id FK
        bigint sku_id FK
        int stock
        int frozen_stock
    }

    PAYMENTS {
        bigint id PK
        bigint order_id FK
        varchar payment_no
        varchar payment_method
        decimal amount
        tinyint status
        timestamp paid_at
    }

    USER_ROLES {
        bigint id PK
        bigint user_id FK
        bigint role_id FK
        timestamp created_at
    }

3.2 DB表结构设计

参考DBA结构设计规范,详细定义每个表的结构。

3.2.1 数据库类型选择

根据项目配置选择相应的数据库语法:

MySQL语法 (默认)

数据类型 说明 示例
BIGINT 大整数 id BIGINT AUTO_INCREMENT
VARCHAR 变长字符串 username VARCHAR(50)
DECIMAL 精确数值 amount DECIMAL(10,2)
TINYINT 微整数 status TINYINT
TIMESTAMP 时间戳 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP

PostgreSQL语法

数据类型 说明 示例
BIGSERIAL 自增大整数 id BIGSERIAL PRIMARY KEY
VARCHAR 变长字符串 username VARCHAR(50)
NUMERIC 精确数值 amount NUMERIC(10,2)
SMALLINT 小整数 status SMALLINT
TIMESTAMPTZ 带时区时间戳 created_at TIMESTAMPTZ DEFAULT NOW()

3.2.2 用户表 (users) – MySQL

表说明: 存储系统用户基本信息

字段名 类型 长度 允许NULL 默认值 索引 说明
id BIGINT NO AUTO_INCREMENT PK 主键ID
username VARCHAR 50 NO UK 用户名
email VARCHAR 100 NO UK 邮箱
password_hash VARCHAR 255 NO 密码哈希
phone VARCHAR 20 YES IDX 手机号
status TINYINT NO 0 IDX 状态:0-正常 1-禁用
created_at TIMESTAMP NO CURRENT_TIMESTAMP IDX 创建时间
updated_at TIMESTAMP NO CURRENT_TIMESTAMP ON UPDATE 更新时间

索引设计:

-- 主键
PRIMARY KEY (id)

-- 唯一索引
CREATE UNIQUE INDEX uk_username ON users(username);
CREATE UNIQUE INDEX uk_email ON users(email);

-- 普通索引
CREATE INDEX idx_phone ON users(phone);
CREATE INDEX idx_status ON users(status);
CREATE INDEX idx_created_at ON users(created_at);

3.2.3 用户表 (users) – PostgreSQL

表说明: 存储系统用户基本信息

字段名 类型 长度 允许NULL 默认值 索引 说明
id BIGSERIAL NO NEXTVAL PK 主键ID
username VARCHAR 50 NO UK 用户名
email VARCHAR 100 NO UK 邮箱
password_hash VARCHAR 255 NO 密码哈希
phone VARCHAR 20 YES IDX 手机号
status SMALLINT NO 0 IDX 状态:0-正常 1-禁用
created_at TIMESTAMPTZ NO NOW() IDX 创建时间
updated_at TIMESTAMPTZ NO NOW() 更新时间

DDL语句:

-- 建表语句
CREATE TABLE users (
    id BIGSERIAL PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    email VARCHAR(100) NOT NULL UNIQUE,
    password_hash VARCHAR(255) NOT NULL,
    phone VARCHAR(20),
    status SMALLINT NOT NULL DEFAULT 0,
    created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

-- 索引
CREATE INDEX idx_users_phone ON users(phone);
CREATE INDEX idx_users_status ON users(status);
CREATE INDEX idx_users_created_at ON users(created_at);

-- 自动更新updated_at触发器
CREATE OR REPLACE FUNCTION update_updated_at_column()
RETURNS TRIGGER AS $$
BEGIN
    NEW.updated_at = NOW();
    RETURN NEW;
END;
$$ language 'plpgsql';

CREATE TRIGGER update_users_updated_at BEFORE UPDATE ON users
    FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();

3.2.4 订单表 (orders) – MySQL

表说明: 存储订单基本信息

字段名 类型 长度 允许NULL 默认值 索引 说明
id BIGINT NO AUTO_INCREMENT PK 主键ID
user_id BIGINT NO FK, IDX 用户ID
order_no VARCHAR 32 NO UK 订单号
total_amount DECIMAL 10,2 NO 订单总金额
status TINYINT NO 0 IDX 状态:0-待支付 1-已支付 2-已取消
created_at TIMESTAMP NO CURRENT_TIMESTAMP IDX 创建时间
updated_at TIMESTAMP NO CURRENT_TIMESTAMP ON UPDATE 更新时间

索引设计:

-- 主键
PRIMARY KEY (id)

-- 唯一索引
CREATE UNIQUE INDEX uk_order_no ON orders(order_no);

-- 普通索引
CREATE INDEX idx_user_id ON orders(user_id);
CREATE INDEX idx_status ON orders(status);
CREATE INDEX idx_created_at ON orders(created_at);

-- 复合索引
CREATE INDEX idx_user_status ON orders(user_id, status);

3.3 设计注意事项

参考DBA结构设计规范:

  1. 不可连表查询

    • 避免跨库连表查询
    • 必要时使用应用层聚合
  2. 索引创建

    • 外键字段自动创建索引
    • 频繁查询字段创建索引
    • 唯一约束字段创建唯一索引
  3. 字段默认值

    • 数值类型默认值:0
    • 字符串类型默认值:”
    • 状态字段默认值根据业务定义
  4. 字段命名规范

    • 使用下划线命名法:user_id, order_no
    • 布尔类型使用 tinyint(1):0-否 1-是
    • 时间字段使用:created_at, updated_at, deleted_at

4. 接口设计

4.1 开发语言选择

根据项目配置选择相应的开发语言风格:

Java风格 (默认)

特性 说明 示例
注解风格 Spring注解 @RestController, @RequestMapping
命名规范 驼峰命名 userName, orderNo
响应格式 统一Result Result<T> 包装返回数据
参数校验 JSR-303 @NotNull, @Valid

Python风格

特性 说明 示例
框架 FastAPI/Flask @app.get(), @app.post()
命名规范 下划线命名 user_name, order_no
响应格式 JSON响应 直接返回dict或Pydantic模型
参数校验 Pydantic Field(), validator()

4.2 接口文档

遵循RT接口文档规范。

4.2.1 RESTful API 规范

基础URL: https://api.example.com/v1

通用响应格式:

{
  "code": 0,
  "message": "success",
  "data": {},
  "request_id": "req-123456789",
  "timestamp": "2026-02-25T14:32:00Z"
}

错误码规范:

错误码 说明
0 成功
1000-1999 客户端错误
2000-2999 认证授权错误
3000-3999 资源不存在
4000-4999 业务错误
5000-5999 服务端错误

4.2.2 接口定义示例

用户登录接口

POST /api/v1/auth/login

请求头:

Content-Type: application/json

请求体:

{
  "username": "user@example.com",
  "password": "password123"
}

响应:

{
  "code": 0,
  "message": "success",
  "data": {
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "token_type": "Bearer",
    "expires_in": 3600,
    "user": {
      "id": 1,
      "username": "user",
      "email": "user@example.com",
      "phone": "13800138000"
    }
  },
  "request_id": "req-123456789",
  "timestamp": "2026-02-25T14:32:00Z"
}

4.2.3 代码实现示例

Java实现 (Spring Boot)
@RestController
@RequestMapping("/api/v1/auth")
public class AuthController {

    @Autowired
    private AuthService authService;

    @PostMapping("/login")
    public Result<LoginResponse> login(@Valid @RequestBody LoginRequest request) {
        LoginResponse response = authService.login(request);
        return Result.success(response);
    }
}

// 请求DTO
@Data
public class LoginRequest {
    @NotBlank(message = "用户名不能为空")
    private String username;

    @NotBlank(message = "密码不能为空")
    private String password;
}

// 响应DTO
@Data
public class LoginResponse {
    private String accessToken;
    private String tokenType;
    private Long expiresIn;
    private UserInfo user;
}
Python实现 (FastAPI)
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel, Field, validator

router = APIRouter(prefix="/api/v1/auth", tags=["认证"])

class LoginRequest(BaseModel):
    username: str = Field(..., description="用户名")
    password: str = Field(..., description="密码")

    @validator('username')
    def username_not_empty(cls, v):
        if not v:
            raise ValueError('用户名不能为空')
        return v

class LoginResponse(BaseModel):
    access_token: str
    token_type: str = "Bearer"
    expires_in: int
    user: UserInfo

@router.post("/login", response_model=LoginResponse)
async def login(request: LoginRequest):
    """用户登录"""
    response = await auth_service.login(request)
    return response

4.3 依赖第三方接口

记录项目依赖的第三方接口。

4.3.1 第三方接口列表

接口名称 提供方 用途 文档地址
支付接口 支付宝/微信 支付处理 https://docs.alipay.com/
短信接口 阿里云 短信验证码 https://help.aliyun.com/
物流接口 顺丰 物流查询 https://sf-express.com/

4.3.2 第三方接口示例

支付宝支付接口

POST https://openapi.alipay.com/gateway.do

请求参数:

{
  "app_id": "2021001234567890",
  "method": "alipay.trade.page.pay",
  "charset": "utf-8",
  "sign_type": "RSA2",
  "timestamp": "2026-02-25 14:32:00",
  "version": "1.0",
  "biz_content": {
    "out_trade_no": "ORDER_20260225001",
    "total_amount": "88.88",
    "subject": "订单标题"
  }
}

5. 相关性能评估

5.1 性能目标评估

5.1.1 性能指标定义

指标 计算公式 示例
日平均请求量 实际统计数据或预估 100,000次/天
平均QPS 日平均请求量 / 40,000秒 100,000 / 40,000 = 2.5 QPS
峰值QPS 平均QPS × 2~4倍 2.5 × 3 = 7.5 QPS

说明: 24小时化为86,400秒,取用户活跃时间为白天算,除以2得40,000秒。

5.1.2 响应时间要求

接口类型 目标响应时间 说明
首页加载 < 2秒 用户感知
API接口 P95 < 200ms 接口响应
查询接口 P95 < 500ms 数据查询

5.2 性能资源评估

5.2.1 单机性能评估

资源类型 单机并发量 单机容量 预估数量
应用服务器 500并发 1000 QPS 根据峰值QPS计算
MySQL 1000并发 5000 QPS 根据读写比例计算
Redis 10000并发 50000 QPS 根据缓存命中率计算
RabbitMQ 5000并发 10000 QPS 根据消息量计算

5.2.2 资源预估

资源类型 配置 数量 说明
应用服务器 4核8G 2台 高可用部署
MySQL 8核16G 1主1从 读写分离
Redis 4核8G 1主2从 哨兵模式
RabbitMQ 4核8G 2台 镜像队列

6. 异常设计

异常设计非常重要,线上问题大部分都是异常情况导致。

6.1 报警机制

监控项 阈值 报警方式 负责人
接口错误率 > 5% 看盘+钉钉 开发
响应时间 P95 > 1s 看盘+钉钉 开发
QPS异常 下降50% 看盘+电话 运维
数据库连接 使用率 > 80% 看盘+钉钉 DBA

6.2 异常重试机制

场景 重试策略 最大重试次数 退避策略
接口调用失败 指数退避 3次 1s, 2s, 4s
数据库连接失败 立即重试 2次 100ms, 200ms
消息队列发送失败 延迟重试 5次 指数退避

重试平台: 使用公司统一重试平台或自建重试机制。

6.3 接口服务幂等

接口类型 幂等方案 实现方式
创建订单 幂等Token Redis存储Token,消费即删除
支付接口 订单号唯一性 数据库唯一约束
库存扣减 分布式锁 Redis分布式锁

6.4 业务降级服务

场景 降级方案 触发条件
推荐服务 返回默认推荐 响应时间 > 500ms
搜索服务 降级为数据库搜索 搜索服务异常
第三方接口 使用备用接口 主接口连续失败

6.5 兼容历史数据

场景 兼容方案 实现方式
接口字段变更 新旧字段并存 同时返回新旧字段
枚举值变更 映射转换 维护新旧值映射表
表结构变更 视图兼容 创建兼容视图

6.6 异常设计图

flowchart TD
    A[请求到达] --> B{正常处理?}
    B -->|是| C[正常响应]
    B -->|否| D{异常类型}

    D -->|超时| E[记录日志]
    D -->|参数错误| F[返回参数错误]
    D -->|业务异常| G[返回业务错误码]
    D -->|系统异常| H[触发报警]

    E --> I{需要重试?}
    I -->|是| J[执行重试]
    I -->|否| K[返回超时错误]

    J --> L{重试成功?}
    L -->|是| C
    L -->|否| M[返回降级结果]

7. 灰度方案

7.1 灰度方案设计图

flowchart LR
    subgraph "灰度前"
        A[全量用户] --> B[旧版本服务]
    end

    subgraph "灰度中"
        A --> C{灰度规则}
        C -->|灰度用户| D[新版本服务]
        C -->|普通用户| B
    end

    subgraph "灰度后"
        A --> D
    end

7.2 灰度策略

灰度阶段 灰度比例 灰度规则 验证指标
第一阶段 5% 按用户ID哈希 错误率、响应时间
第二阶段 20% 按用户ID哈希 错误率、响应时间
第三阶段 50% 按用户ID哈希 错误率、响应时间
第四阶段 100% 全量 正常运行

7.3 回滚方案

触发条件 回滚操作 回滚时间
错误率 > 5% 切换回旧版本 < 5分钟
响应时间 P95 > 2s 切换回旧版本 < 5分钟
数据异常 立即回滚并报警 < 1分钟

8. 初始化数据

8.1 初始化范围

数据类型 说明 示例
基础配置数据 系统启动必需的配置 字典数据、枚举值
测试数据 开发测试用数据 测试用户、测试商品
历史数据 从旧系统迁移的数据 历史订单数据

8.2 数据处理方案

8.2.1 数据导入流程

sequenceDiagram
    actor 开发 as 开发人员
    participant 旧系统 as 旧系统数据库
    participant ETL as ETL工具
    participant 新系统 as 新系统数据库

    开发->>旧系统: 导出数据
    旧系统-->>ETL: CSV/Excel文件
    ETL->>ETL: 数据清洗转换
    ETL->>新系统: 导入数据
    新系统-->>开发: 导入结果确认

8.2.2 数据映射表

旧字段 新字段 转换规则 示例
user_name username 直接映射 “张三” → “张三”
user_type role 枚举映射 “1” → “admin”
create_time created_at 格式转换 “2026-02-25 14:32:00”

9. 安全及风险评估

9.1 风险点识别

风险类型 风险描述 风险等级 应对措施
SQL注入 输入未过滤导致SQL注入 高 参数化查询、输入校验
XSS攻击 前端未转义导致XSS 中 输出转义、CSP策略
数据泄露 敏感数据明文存储 高 加密存储、脱敏展示
越权访问 权限校验不严格 中 RBAC权限控制

9.2 兼容性分析

变更点 影响范围 兼容性方案
接口字段新增 前端调用方 新旧字段并存
接口字段删除 前端调用方 标记为deprecated后下线
数据类型变更 数据存储 数据迁移脚本
接口路径变更 调用方 保留旧路径,重定向到新路径

9.3 数据脱敏

数据类型 脱敏规则 示例
手机号 保留前3后4位 138****8000
身份证号 保留前6后4位 110101********1234
银行卡号 保留后4位 **** **** **** 1234
邮箱 保留首尾字符 a***@example.com

确认方式: 与安全组人员确认脱敏方案

10. 是否增设看盘

10.1 看盘数据追踪

追踪类型 追踪内容 追踪目的
接口调用 请求参数、响应结果、耗时 问题排查、性能分析
异常日志 异常堆栈、业务上下文 故障定位
业务日志 关键业务操作 审计追溯

10.2 看盘配置

配置项 配置值 说明
采样率 100% 开发环境100%,生产环境10%
日志级别 INFO 生产环境使用INFO级别
日志保留时间 30天 根据合规要求调整

11. 工作量评估

11.1 评估模板

模块/接口 开发时间 联调时间 测试时间 总计 负责人
用户模块 5人天 2人天 2人天 9人天 张三
订单模块 8人天 3人天 3人天 14人天 李四
支付模块 6人天 3人天 2人天 11人天 王五
合计 19人天 8人天 7人天 34人天

11.2 评估说明

  1. 开发时间:包括需求理解、编码、单元测试
  2. 联调时间:模块间联调、第三方接口联调
  3. 测试时间:功能测试、集成测试、性能测试
  4. 总计:开发 + 联调 + 测试时间之和

11.3 时间计算方式

总工作量 = 开发时间 + 联调时间 + 测试时间

人月 = 总工作量 / 22天

完整文档模板

# {项目名称} - 设计文档

| 文档版本 | v1.0 |
|---------|------|
| 创建日期 | {YYYY-MM-DD} |
| 文档状态 | 草稿 |
| 作者 | {作者名} |
| 数据库类型 | MySQL / PostgreSQL |
| 开发语言 | Java / Python |

---

## 变更记录

| 版本 | 日期 | 作者 | 变更内容 |
|------|------|------|----------|
| v1.0 | {YYYY-MM-DD} | {作者} | 初始版本 |

---

## 目录

1. [需求文档地址](#1-需求文档地址)
2. [技术方案设计图](#2-技术方案设计图)
3. [数据结构设计](#3-数据结构设计)
4. [接口设计](#4-接口设计)
5. [相关性能评估](#5-相关性能评估)
6. [异常设计](#6-异常设计)
7. [灰度方案](#7-灰度方案)
8. [初始化数据](#8-初始化数据)
9. [安全及风险评估](#9-安全及风险评估)
10. [是否增设看盘](#10-是否增设看盘)
11. [工作量评估](#11-工作量评估)

---

## 1. 需求文档地址

- **PRD文档**: {PRD文档URL}
- **禅道地址**: {禅道URL}

---

## 2. 技术方案设计图

### 2.1 架构图

{在此绘制架构图}

### 2.2 技术流程图

{在此绘制技术流程图}

### 2.3 系统时序图

{在此绘制时序图}

---

## 3. 数据结构设计

### 3.1 ERD图

{在此绘制ERD图}

### 3.2 DB表结构设计

{在此定义表结构}

---

## 4. 接口设计

### 4.1 接口文档

{在此定义接口}

### 4.3 依赖第三方接口

{在此列出第三方接口}

---

## 5. 相关性能评估

### 5.1 性能目标评估

{在此定义性能指标}

### 5.2 性能资源评估

{在此评估资源需求}

---

## 6. 异常设计

### 6.1 报警机制

{在此定义报警规则}

### 6.2 异常重试机制

{在此定义重试策略}

### 6.3 接口服务幂等

{在此定义幂等方案}

### 6.4 业务降级服务

{在此定义降级方案}

### 6.5 兼容历史数据

{在此定义兼容方案}

---

## 7. 灰度方案

### 7.1 灰度方案设计图

{在此绘制灰度设计图}

### 7.2 灰度策略

{在此定义灰度策略}

### 7.3 回滚方案

{在此定义回滚方案}

---

## 8. 初始化数据

### 8.1 初始化范围

{在此定义初始化范围}

### 8.2 数据处理方案

{在此定义数据处理方案}

---

## 9. 安全及风险评估

### 9.1 风险点识别

{在此识别风险点}

### 9.2 兼容性分析

{在此分析兼容性}

### 9.3 数据脱敏

{在此定义脱敏规则}

---

## 10. 是否增设看盘

### 10.1 看盘数据追踪

{在此定义追踪内容}

### 10.2 看盘配置

{在此定义看盘配置}

---

## 11. 工作量评估

### 11.1 评估表格

{在此评估工作量}

### 11.2 评估说明

{在此说明评估方法}

---

**文档结束**

使用示例

示例:订单管理系统设计文档

输入需求:

订单管理系统需要支持用户下单、支付、查询订单等功能。
预计日订单量10万,峰值QPS约30。

生成内容:

  1. 需求文档地址 – 链接到PRD文档
  2. 架构图 – 用户服务、订单服务、支付服务的分层架构
  3. ERD图 – users、orders、order_items、payments表及关系
  4. 时序图 – 登录、下单、支付流程
  5. 接口定义 – 完整的RESTful API定义
  6. 性能评估 – QPS预估、资源评估
  7. 异常设计 – 重试、降级、幂等方案
  8. 灰度方案 – 灰度设计图
  9. 初始化数据 – 基础配置数据
  10. 安全评估 – 风险识别、数据脱敏
  11. 工作量评估 – 各模块工时评估