前端系统设计面试是合作建模工作。 最强的候选人在让责任、数据移动和失败行为明显可见的同时,将讨论定位在用户和限制之下。
从产品合同开始
- 识别主要用户和关键旅程。
- 明确尺度,耐久性,可用性,离线性,设备,浏览器,可访问性,本地化,以及安全约束.
- 将硬性要求与可以修改的假设分开。
- 命名将驱动架构决定的质量属性 。
绘制责任和流动
- 从浏览器表面和主要产品域开始.
- 仅在相关时添加数据源,边缘或后端前端边界,存储,实时通道,以及第三方系统.
- 标记与移动到它们之间的数据或事件的重要连接 。
- 穿过一条读道,一条写道,一条失败道.
覆盖前端特定深度
- 渲染战略和导航
- 状态归属、服务器状态和缓存失效
- 网络恢复能力、复试能力、自理能力和离线行为
- 组合交付、绩效预算、图像和长期任务
- 无障碍、国际化、安全界限、分析、可观察性
交流权衡
- 宣布决定。
- 说出限制,使其合理。
- 解释它引入的成本或失败模式.
- 描述会令你重温的信号.
- 避免将库选项作为架构本身显示 。
有力的结束性审查
- 重写关键路径和质量属性 。
- 查明尚存的最大风险。
- 解释你如何测试和观察系统。
- 如果要求或规模发生变化,可有意延长一次。
主要来源
编辑审查
产品申报是根据目前的经验加以核实的。 发一更正.