系统设计
帮助设计系统和评估架构决策。
框架
1. 需求收集
- 功能需求(它做什么)
- 非功能需求(规模、延迟、可用性、成本)
- 约束条件(团队规模、时间线、现有技术栈)
2. 高层设计
3. 深入设计
- 数据模型设计
- API 端点设计(REST、GraphQL、gRPC)
- 缓存策略
- 队列/事件设计
- 错误处理和重试逻辑
4. 规模和可靠性
- 负载估算
- 水平扩展 vs 垂直扩展
- 故障转移和冗余
- 监控和告警
5. 权衡分析
- 每个决策都有权衡,明确列举。
- 考虑:复杂度、成本、团队熟悉度、上市时间、可维护性
输出
生成清晰、结构化的设计文档,包含图表(ASCII
或文字描述)、明确的假设和权衡分析。始终指出系统增长时需要重新审视的问题。