用途
System Design Interrogation 用于在规划系统架构时确保不遗漏关键问题。它要求在编写任何代码之前,先通过结构化提问对功能进行系统性审视,避免因匆忙进入实现而导致的问题,例如:可扩展性问题发现过晚、因缺少租户隔离而产生的安全漏洞、数据模型不匹配、前后端契约冲突以及较差的用户体验。
主要能力:五个维度
该技能围绕五个维度组织提问:
-
可扩展性(Scale)
- 多少用户/租户会使用此功能?
- 预期数据量是多少(现在及一年后)?
- 请求速率如何?是读密集还是写密集?
- 复杂度随数据是线性增长还是指数增长?
- 在当前负载的 10 倍、100 倍下会发生什么?
-
数据(Data)
- 数据自然应归属于何处?
- 主要访问模式是什么?
- 是主数据还是事务性数据?
- 保留策略是什么?
- 是否需要可搜索?如何搜索?
-
安全(Security)
- 谁可以访问此数据/功能?
- 如何实施租户隔离?
- 授权失败时会发生什么?
- 引入了哪些攻击向量?
- 是否涉及 PII?
-
用户体验影响(UX Impact)
- 此操作的预期延迟是多少?
- 操作期间用户获得什么反馈?
- 失败时会发生什么?可以重试吗?
- 是否可能实现乐观 UI?
- 这如何影响整体工作流?
-
一致性(Coherence)
- 涉及哪些层级?
- 哪些契约/接口会发生变化?
- 前后端类型是否一致?
- 是否会破坏现有客户端?
- 这如何影响 API?
使用方式
在编写任何代码之前,按以下流程执行:
- 陈述功能 —— 用一句话描述。
- 运行五个维度 —— 为每个维度回答关键问题。
- 识别权衡 —— 速度与质量、复杂度与灵活性。
- 记录决策 —— 将答案记录在设计文档或 issue 中。
- 与团队评审 —— 在实施前达成一致。
技能提供“快速评估模板”,格式为 Markdown,包含 Scale、Data、Security、UX、Coherence 各部分的填写项,以及最终决策(Decision)与理由。
集成方式
- 在头脑风暴阶段:在实施前运行系统设计审问,流程为 /brainstorm → System Design Questions → Implementation Plan。
- 在代码审查中:审查者应验证可扩展性考虑已记录、安全层已覆盖、类型跨栈一致、UX 状态已处理。
- 在测试中:测试应覆盖可扩展性(按预期数据量的负载测试)、安全(租户隔离测试)、一致性(跨层集成测试)、UX(错误状态测试)。
适用场景与反模式
该技能适用于功能规划、架构设计评审和代码审查前的设计验证。文档列出常见反模式,例如“如果慢了以后再添加索引”“我们可以在未来的 PR 中添加租户过滤”“前端可以处理任何响应形状”“用户不会那样做”“这只是个小功能”,并针对每条给出应追问的问题。
限制
资料未提供该技能的定价、收费、平台支持范围或具体安装命令。相关限制与可用性信息暂未提供。