如何练习
面试流程与范围
了解面试范围
阅读学习导图,了解面试中可能会考核的内容。
面试流程
阅读以下文章,了解系统设计面试流程: Designing a URL Shortening service like TinyURL 与 Designing Instagram
工具
学习使用以下工具绘制架构图(每个工具大概 10 分钟):
- lucid.app
- Whimsical
- Miro
理解问题
要求:对于给定的题目,能够快速分类以及了解需求。
练习方法: 使用应用分类表格,仅保留最左边的一列的数据,尝试通过应用的类别补充剩余的两列内容。
分析问题
要求:对于给定需求以及非功能性要求,能够总结该题的关键点以及解决该关键点的最佳实践。
练习方法: 使用应用与设计模式表格,仅保留应用的类别,补充应用的关键点,架构类型以及最合适的设计模式。
解决以及深入讨论
要求:针对选择的架构类型以及设计模式,能够绘制架构图,并且针对架构图进行深入讨论。
练习方法:针对每个分类都绘制架构图,然后根据选择的设计模式阅读设计模式与常见问题并且了解其解决方案。
针对性练习
基本组件
阅读基本组件,了解热门的组件,其使用场景与最佳实践。
算法
业界实践
练习之后
- 参考以下例子完成详细文档阅读学习导图,针对自己不熟悉的方向进行针对性练习。
- [信息流系统](https://interview-science.org/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/%E4%BF%A1%E6%81%AF%E6%B5%81%E7%B3%BB%E7%BB%9F)
- [IM 系统](https://interview-science.org/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/IM%20%E7%B3%BB%E7%BB%9F)
- [电商系统](https://interview-science.org/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/%E7%94%B5%E5%95%86%E7%B3%BB%E7%BB%9F)