我们要先搞懂系统设计是什么
划重点,这里讲的系统设计都是系统设计面试,而非是工业上的设计系统。系统设计,其实就是一个“吹牛逼”的行为,在和面试官你来我往的沟通中,用“嘴皮子”创建一个系统,讨论系统。
我简单总结了一下系统设计面试相关问题的问法:
设计某某系统 Design XXX System
• 设计微博 Design Twitter
• 设计滴滴 Design Uber
• 设计微信 Design Whatsapp
• 设计点评 Design Yelp
• 设计短网址系统 Design Tiny URL
• 设计NoSQL数据库 Design NoSQL
……
设计一个功能实现对用户访问频率的限制
• 设计一个功能实现统计某个具体事件的历史发生次数
• 设计删除一个 Tweet 的功能
• 设计邮件系统中将所有邮件标记为已读的功能
……
某某系统的技术选型比如缓存用Redis
还是Memcached
、网关用Spring Cloud Gateway
还是Netflix Zuul2
。
……
所谓知己知彼,百战不殆,弄清面试官的意图很重要。
系统设计面试不是希望你在30min左右设计出一个完整的系统,而是考察你在面对一个复杂的问题时,如何把它进行拆解、细化、运用现有的系统知识完成一个具体的项目,实现工作中leader需要你实现的功能。
推荐一下系统架构设计 System Design 2021 版
课程包含秒杀系统与订单系统、网站系统、协同实时编辑系统、限流器与实时数据系统、即时通讯系统、视频系统、爬虫系统等18个常见的系统,覆盖了系统设计全面的面试题型。
课上还会提供系统设计的通用解题步骤,并独创了系统设计训练方式,通过编程掌握核心技术点。让系统设计面试像刷题一样有迹可循。
第一节的免费试听课程就会讲到设计Twitter和系统设计的通用解题法则,不妨去感受一下,简单入个门。
毕竟系统设计面试不是希望你在30min左右设计出一个完整的系统,而是考察你在面对一个复杂的问题时,如何把它进行拆解、细化、运用现有的系统知识完成一个具体的项目,实现工作中leader需要你实现的功能。
想明白了这点,对于你之后的解题很有帮助,所以我才说系统设计就是“吹