金三银四,跳槽和招聘旺季,分享一个程序员面试中经常被提问的问题:你所在公司的系统架构是什么样的?
想象一下,此刻你面前坐的是一位脸带笑意的面试官,他把一张空白的A4纸和一支黑色签字笔推到你眼前,"在纸上画下你们公司的系统架构吧。"
通常来说,大吹特吹系统架构多么高大上可能会被当场揭穿,觉得没啥可讲的敷衍了事必然被直接PASS。准备好了吗?这里分享一个简单易行的方法:按照由外入内,从大到小的顺序介绍系统架构。
"外"是指系统的外貌,即系统的行业背景、核心功能、主要用户和系统特点。注意介绍时讲话要简洁明了,每个点都力求只用一句话,绝不拖泥带水,给面试官留下一个"惊人的好印象",让他觉得眼前这个面试者属于有备而来,不是来讲废话浪费双方时间的。
"内"是指系统架构的组成,主要包含哪些模块,各模块使用的技术栈。有个技巧是按照数据流向来介绍:数据从哪里来(输入),最终到哪里去(输出),中间经历什么复杂的处理过程(处理)。无论是大型复杂系统还是简单的系统,都可以按照“数据的输入、处理、输出”的方法介绍清楚,当人们了解一个系统的输入和输出时,自然而然就会对数据是如何处理的发生兴趣。
介绍完系统的外貌和组成,接下来可以按照“由大到小”的顺序介绍整个系统架构中你所负责的模块了。
“大”是指模块的功能、定位,主要用到哪些技术,技术挑战是什么,对整个系统的价值是什么。从宏观角度对自己所负责模块