⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议
Skip to content

5.6.4 提前想想会出什么错——风险评估

一句话破题

风险评估就是提前问自己:什么可能出错?出错了怎么办?

风险评估的意义

没有风险评估:
  开发到一半发现 → 技术选型有问题 → 推倒重来

有风险评估:
  开发前就发现 → 调整方案或准备备选 → 平稳推进

常见技术风险类型

风险类型示例影响程度
技术可行性第一次用某个技术
性能风险担心扛不住流量
安全风险认证、数据泄露
依赖风险第三方服务不可用
时间风险工作量低估

风险评估模板

markdown
## 风险评估

### 风险 1:Prisma 不熟悉
- **概率**:高(第一次使用)
- **影响**:中(可能需要更多时间)
- **缓解措施**
  - 先做一个小 demo 熟悉 API
  - 准备好官方文档作为参考
  - 复杂操作让 AI 协助

### 风险 2:图片上传性能
- **概率**:低
- **影响**:中
- **缓解措施**
  - 前端压缩后再上传
  - 使用 CDN 加速
  - 设置文件大小限制

### 风险 3:用户量突增
- **概率**:低(初期)
- **影响**:高
- **缓解措施**
  - 使用 Vercel 自动扩容
  - 数据库连接池
  - 添加缓存层(后续)

风险矩阵

             高影响

       ┌───────┼───────┐
       │ 关注  │ 优先  │
       │       │ 处理  │
       ├───────┼───────┤
       │ 接受  │ 关注  │
       │       │       │
       └───────┼───────┘
    低概率 ←───┼───→ 高概率

             低影响
象限行动
高概率 + 高影响优先处理,制定详细缓解计划
高概率 + 低影响关注,准备简单应对方案
低概率 + 高影响关注,准备应急预案
低概率 + 低影响接受风险,出问题再处理

实际案例:博客系统风险

markdown
## 博客系统技术风险评估

### 高优先级风险
| 风险 | 概率 | 影响 | 缓解措施 |
|------|------|------|----------|
| 认证实现不当 | 中 | 高 | 使用成熟的 next-auth |
| 密码存储不安全 | 中 | 高 | 使用 bcrypt 加密 |

### 中优先级风险
| 风险 | 概率 | 影响 | 缓解措施 |
|------|------|------|----------|
| 首页加载慢 | 中 | 中 | SSG + CDN |
| 数据库查询慢 | 低 | 中 | 添加索引 |

### 低优先级风险
| 风险 | 概率 | 影响 | 缓解措施 |
|------|------|------|----------|
| Markdown 解析问题 | 低 | 低 | 用成熟库 |

风险应对策略

针对不同风险,有不同的应对方式:

策略说明适用场景
规避换一种方案风险太大不值得冒
转移用第三方服务不想自己承担
缓解降低概率或影响必须面对但可以准备
接受承认风险存在影响小或成本低

让 AI 帮你发现风险

你:分析这个博客系统技术方案可能有什么风险

AI:## 潜在技术风险

### 安全风险
1. **XSS 攻击**:Markdown 渲染时可能执行恶意脚本
   - 缓解:使用 sanitize-html 清洗输出

2. **CSRF 攻击**:POST 接口可能被跨站调用
   - 缓解:next-auth 自带 CSRF 保护

### 性能风险
1. **N+1 查询**:列表页加载作者信息
   - 缓解:使用 Prisma include 预加载

2. **大文件上传**:内存溢出
   - 缓解:限制文件大小,使用流式上传

### 依赖风险
1. **Vercel 免费额度用尽**
   - 缓解:监控用量,准备备选方案

实用建议

  1. 列出所有担心的点:宁可多想不要遗漏
  2. 评估概率和影响:不是所有风险都需要处理
  3. 每个风险都要有对策:哪怕是"接受"
  4. 新技术先做 Spike:写个小 demo 验证可行性