我在一次面试中被问到了这个问题。面试官要求我为全球应用程序(例如Yelp)设计后端架构,并询问我需要使用的技术。
在面试时间段(这个问题预计需要5到10分钟),我需要给出什么答案(或者我需要考虑的方面)?它们可以推广到类似应用程序的架构设计吗?我找到了一个答案here,但对于面试问题的答案来说太多了,而且它对应用程序太具体了。
发布于 2017-06-03 06:30:23
我想这取决于“全球应用”是什么意思。它可能意味着“一个很多人都在使用的应用程序”,也可能意味着“一个在许多不同国家都有用户的应用程序”。如果您面试的是系统架构师或系统工程师,我想可能是前者;如果您面试的是程序员职位,则可能是后者。
对于前者,他们正在寻找健壮性和可扩展性类型的答案:跨多个web和db服务器的负载平衡;包过滤和流量监控,等等。
对于后者,他们可能在寻找可用性和不同的接口类型的答案:语言本地化技术,处理不同格式的地址和电话号码的数据库模型,等等。
发布于 2017-06-03 21:05:26
你是对的,对于面试来说,这是一个非常宽泛的问题,要么是一个宽泛的答案会让人对你的可伸缩性、可用性等技能有一个感觉,要么是面试官想看看你在没有细节的情况下是如何解决问题的。在这种情况下,对这样一个问题的一个很好的回答是你关于系统的问题,主要是关于非功能性需求的问题。在做出架构决策之前,找出系统的所有细节是非常重要的,所以如果你开始问问题,这意味着你知道如何处理这样的任务。
https://stackoverflow.com/questions/44338059
复制相似问题