SDD 精通指南

适合对象:能产出高质量 SPEC,能指导他人,能优化规范模板

你需要知道什么?

1. 宪法是"活的",不是一成不变的

随着项目演进,宪法需要迭代

宪法冲突时,要有优先级机制

2. 规范要区分"Must"和"Should"

Must:必须实现,否则验收不通过

Should:应该实现,但可以延期

3. 计划要考虑非功能性需求

  • • 性能指标(响应时间、并发量)
  • • 安全要求(加密、权限、审计)
  • • 可维护性(日志、监控、文档)

4. 任务要关联到具体的人和资源

谁负责?需要什么权限?

依赖外部团队的任务要提前协调

精通者的核心价值

精通者的进阶方向

范例对比:计划(Plan)

❌ 差的计划

# 实施计划

## 技术栈
- Python + FastAPI
- PostgreSQL
- Redis

## 步骤
1. 创建项目
2. 写代码
3. 测试
4. 部署

只有技术栈,没有架构设计

步骤太粗略,无法指导开发

没有数据模型设计

没有 API 设计

✅ 好的计划

# 实施计划:用户登录服务

## 技术选型

### 后端框架:FastAPI
**选型理由**:
- 原生支持异步,性能优异
- 自动生成 OpenAPI 文档
- Pydantic 提供强大的数据验证
- 团队已有使用经验

### 数据库:PostgreSQL
**选型理由**:
- 支持复杂查询和事务
- 团队熟悉度高
- 已有基础设施

### 缓存:Redis
**选型理由**:
- 验证码存储(5 分钟过期)
- 登录失败计数(滑动窗口)
- Token 黑名单(登出场景)

## 架构设计

### 组件图
┌─────────┐    ┌──────────┐    ┌──────────┐
│  Client  │───▶│  API GW  │───▶│  Auth    │
│  (Web)   │◀───│  (Nginx) │◀───│  Service │
└─────────┘    └──────────┘    └────┬─────┘
                                    │
                          ┌─────────┼─────────┐
                          ▼         ▼         ▼
                     ┌────────┐ ┌──────┐ ┌────────┐
                     │Postgres│ │Redis │ │ 邮件   │
                     │        │ │      │ │ 服务   │
                     └────────┘ └──────┘ └────────┘

### 数据模型

#### 用户表(users)
| 字段 | 类型 | 约束 | 说明 |
|------|------|------|------|
| id | UUID | PK | 用户唯一标识 |
| email | VARCHAR(255) | UNIQUE, NOT NULL | 邮箱 |
| password_hash | VARCHAR(255) | NOT NULL | bcrypt 加密密码 |
| phone | VARCHAR(20) | UNIQUE, NULLABLE | 手机号 |
| status | ENUM | NOT NULL | 状态:active/locked |
| failed_attempts | INT | DEFAULT 0 | 连续失败次数 |
| locked_until | TIMESTAMP | NULLABLE | 锁定截止时间 |
| created_at | TIMESTAMP | DEFAULT NOW | 创建时间 |

### API 设计

#### POST /api/v1/auth/login
**请求体**:
{
  "email": "user@example.com",
  "password": "***"
}

**成功响应**(200):
{
  "token": "eyJhbGciOiJIUzI1NiIs...",
  "expires_at": "2026-08-01T09:04:38Z"
}

**失败响应**(401):
{
  "error": "invalid_credentials",
  "message": "邮箱或密码错误"
}

## 开发阶段

### Phase 1:基础框架(1 天)
- 项目初始化
- 数据库连接配置
- 基础中间件(日志、错误处理)

### Phase 2:核心功能(2 天)
- 用户认证逻辑
- JWT Token 生成
- 密码加密存储

### Phase 3:安全增强(1 天)
- 登录失败计数
- 账号锁定机制
- 验证码逻辑

### Phase 4:测试与部署(1 天)
- 单元测试(覆盖率 > 80%)
- 集成测试
- Docker 化部署

选型理由,不只是列技术栈

架构设计(组件图)

数据模型(表结构)

API 设计(请求/响应示例)

开发阶段和工时估算

上一篇:熟练篇 下一篇:专家篇