良好的架构面试问题

34 architecture

在面试中要问一些好问题,看看申请人对建筑有多了解?

Uri*_*Uri 40

架构是不仅仅是一个琐事问题(例如,设计模式使用)的事情之一,并且比其他访谈主题更主观.通常没有一个正确的架构,这使评估某人变得更加棘手.你能得到的最多的是对受访者如何思考的想法.

我建议你向受访者描述一个复杂的产品或产品的一部分,你(访谈员)最熟悉的.然后让他思考如何构建它并解释他的推理,然后专注于具体的决定并提出问题.

当然,只有这样做:

  • 您可以听到其他不属于您自己的设计.
  • 您可以采取潜在的批评并承认您自己的设计可能不完美

另外一个好处是,如果他被录用,你会看到如何处理分歧.

如果您的产品被重新架构,另一种方法是描述旧版本的架构,并询问受访者他将如何重新构建它.如果结果接近当前架构,那么候选人很可能会很好地适应您团队的风格和心态.


jno*_*ris 16

  1. 询问他们所关注的"社区"中的人,并钦佩他们的建筑能力以及为什么?这将使您了解其建筑风格的哲学倾向.此外,如果他们不能说出任何人的名字或他们为什么钦佩他们,那就是一个大红旗,因为他们显然没有跟上社区的最佳实践和进步.
  2. 让他们用与面试相关的建筑设计模式来命名一些问题/建议/权衡.他们不能这样做,这是一个红旗,因为他们可能在无意识中无能(即:一个粉丝),而不是在这个领域有真正的经验和见解.命名给定体系结构所带来的优势要容易得多,而真正理解这些缺点需要更深入的洞察力.

  • 我只想扮演魔鬼的拥护者并问:人们是否必须跟随社区中的某个人成为一名优秀的软件设计师?哦,还有 - 更重要的是 - 一个好的设计还是能够命名你应用的模式? (28认同)

小智 16

假设您已经检查了它们的文化/个性适应性和开发技巧,我建议您执行以下操作:

  1. 要求候选人描述他们实际设计和/或实施的中大规模系统的架构.询问围绕他们所做的设计权衡的探讨问题.

  2. 为候选人提供具有多个已知缺陷的系统的设计.它可以是你组成的,也可以是众所周知的.要求候选人识别缺陷并重新设计系统,假设他们没有时间或金钱限制.

  3. 向候选人提出一系列非平凡系统的要求(即用于在医院环境中检查医学图像的分布式系统)让他们在系统的组件中增加白板的细节,直到您对他们的引出能力感到满意为止利益相关者(您)的要求,并在其设计中做出适当的权衡.

这些都不能保证你会选择最好的"建筑师"(我和标题建筑师的问题与Joel和Jeff一样).但是,这些肯定是很好的过滤技术,应该可以帮助您识别具有适合您团队特征的人.


Chr*_*lan 15

"所以,我不会在这里把你拉到一边:你能告诉我一些可以让我相信你对建筑有很多了解的东西吗?"

  • 我不确定知道建筑意味着你会成为一名优秀的建筑师.我认识那些对艺术有很多了解并且无法画出超越数字的东西的人. (10认同)

eas*_*sel 5

我有点担心你的问题.乍一看,我会提出一些建议:"请描述中西部草原形式对现代工艺品设计的影响".

从脸颊上移开舌头,我会建议克里斯在上面做了什么.为候选人提供与您和您的团队互动的机会,以设计与您的工作相关的架构.如果你觉得有能力判断他们的能力是基于看到他们解决问题而不是罐头问题,你需要让其他人参与面试.或者从乔尔和杰夫的书中取一页并划掉术语"架构"并开始寻找称职的软件工程师.

在我看来,设计或"建筑师"的能力是一种技能,而不是一套知识.问他们一堆问题,比如"使用J2EE vX vs J2EE vY的性能影响"或"哪个更好,CORBA或RMI"只会让你看起来很傻.