Appearance
拜托,别再背八股文了,现在都会结合项目场景问
作为一个工作了16年的架构师,给大家讲讲项目经验这块面试会怎么问,一般我会让面试者先说一下他们项目的整体架构,讲一下用了哪些技术和核心的业务思路。比如,如果面试者说他们公司用了Dubbo作为服务框架,我会进一步问Dubbo底层的通信框架是什么,是Netty还是Mina,然后再问底层的NIO是什么,网络通信里的长连接和短连接是什么,是否看过Dubbo的源码,源码中对并发技术的运用有哪些印象深刻的地方。通过这些问题,我可以深入了解面试者对技术的掌握程度。
接着,我会深入到项目的业务细节,好的面试官会掌握一个原则:死扣细节。比如,如果面试者说用了Redis,我会进一步问哪个业务场景用了Redis,业务流程是什么,具体选用了哪种数据结构存放什么数据,数据的过期时间是什么,如果缓存过期了,数据兜底方案是什么,如何设计的key,为什么要这么设计,数据放在Redis里是哪个业务来查Redis,为什么要这样做,如果不用Redis会怎么样。通过这些问题,我可以看出面试者对技术的实践有多深,是否经历过复杂业务架构下的分布式系统设计和开发。
如果面试者面试的是中级岗位,我会看他们是否技术整体OK,独立负责过核心模块的开发,对各种技术有一定的实践经验。如果是高级或资深岗位,我会看他们是否带领一个小团队独立负责过一个有一定复杂度和难度的完整系统的架构设计和开发。如果是架构师岗位,我会要求他们在公司里主导过很多人协作完成的大型而且复杂的项目群,对大型系统架构有深度的思考和整体的把控,项目要有足够的技术挑战,比如大用户量、高并发、海量数据等。
然后,我会考察系统设计能力,尤其是高级工程师及以上的岗位。我会用一些业务场景来问面试者如何设计系统架构,比如如何设计一个电商秒杀系统架构,如何设计一个消息推送系统架构,双11大促时如何设计系统的动态扩容/缩容机制。这些问题可以考察面试者的架构设计思维,尤其是针对没接触过的业务场景。
最后,对于有项目管理经验的同学我会考察他是如何管理项目,把控项目进度以及团队协作的,还有沟通表达能力如何,性格是否踏实,是否有责任心等等。
通过以上问题可以全面考察面试者的技术面是否完整,是否有几个技术领域有足够的深度,做过什么样的项目,项目的实践经验如何,把控过多大的团队和项目,对全新业务场景的系统设计能力如何,基本功如何,综合素质如何等等。
更新: 2024-07-15 22:21:18
原文: https://www.yuque.com/tulingzhouyu/db22bv/lorrcwg9qhgaeo7l