大家好,我是小林。
最近有位读者在面字节的时候,系统设计这一块没有答好,问我有没有相关的资料补一补。
还真有,我在 Github 上找到了一位国外大佬整理的关于系统设计的面试题,国外的公司除了爱考算法,也很常考察系统设计的问题。
先跟大家扯皮一句,很多人在简历里的项目介绍里写了用 redis 作为缓存,用 kafka 作为消息队列等等,可能这些方案都是领导决定的,在面试时你不能说因为领导说用这个,就用这个。大家自己要去思考下:
- 为什么你的项目选择用 redis 作为缓存,而不是 Memcache 呢?
- 为什么你的项目选择用 kafka 作为消息队列,而不是 ActiveMQ、RabbitMQ、RocketMQ 呢?
方案选择的问题在面试过程中,还是很常被问到的,即使大家没用过其他组件,但是还是要去对比下它们之间的区别。
系统设计仓库
扯完了,接下来跟大家聊下这个「系统设计」这个 github 仓库,这个仓库很直接,就是为系统设计的面试做准备的。
系统设计主题的索引,我这里截了一点,其实还有很多内容:
起步是一个国外老哥写的,国内有人将它翻译成了中文。
github 地址:https://github.com/donnemartin/system-design-primer/blob/master/README-zh-Hans.md
就简单介绍到这里啦,仓库的内容很多,有需要准备这方面的同学可以去详细看看。
图解仓库
小林的图解计算机基础文章也开源在 Github 了。
Github 地址:https://github.com/xiaolincoder/CS-Base