u*****r 发帖数: 135 | 1 inheritance ; composition; ...... 请大家讨论 | l*****a 发帖数: 14598 | 2 发信人: NND (牛牛的), 信区: JobHunting
标 题: Re: Amazon AWS招人
发信站: BBS 未名空间站 (Fri Sep 23 00:32:38 2011, 美东)
这种问题都起始于OO Design,那些Object,怎么关系啥的。帮人帮到底,送佛送到西,
讲讲通常情况下,这种design问题的答题方法(对于多数面试官适用,当然也有例外)
。
这种问题首先明确要干啥,也就是需求分析,不要上来就开搞。比如parking lot,设计
是parking lot的管理?还是charge system?还是啥其他相关问题。这个很重要,决定
了你的设计。
其次,要求几个具体user case。比如,parking lot,可能要求用户能walk-in and pa
rk;要求用户能提前预订;能cancel reservation。user caess也决定了你的design,
也体现了你良好的沟通能力。
然后就是Logical Model或者physical model的design。需要啥Objects(比如 Garage,
Lot, Customer, Car)。
然后他们的关系,比如Garage to Lot (1 - m)。在兽一下OO的继承关系(比如car有tru
ck, sedan, SUV啥的;Lot有大lot,小lot,残帕啥的)
然后根据user case,说明如何用你的model实现。比如reserve,从garage (比如singl
eton)找合适的 Lots,然后根据时间段,看能不能reserve。能的话,系统状态如何up
date;不能得话,如何给customer feedback。
这个可以延伸到很多问题,比如可以考察synchronization,如果只有一个lot,几个用
户同同时request,如何保障正确的行为,如何保障公平,等等。
也可以考算法,根据你的设计,随意挑一个component,比如选择合适的lot,如何高效
优质的实现你的算法。比如你可以用List一个一个找;也可以用其他数据结构,提高算
法质量。
也可以考Coding,从你的任意描述,抽象一个方法,让你写Code。比如如何实现方法Re
verse。定义API,写code。
也可以考business sense,比如在资源有限情况下,如何取舍(功能上,用户体验上,
等等)。
基本上,这种Open Question,想考啥,都可以考。所以你应该从基本OO Design开始,
把面试管引导到你擅长的方向。比如,你熟悉多线程,就多强调一下如何做同步控制;
如果你Design Pattern比较熟,就多丢一丢,比如Garage可以是个Singleton Pattern,
啥的。当然,要是你碰着傻X的面试官,一根经的非要你按照他的想法去设计,那就是你
的rp问题了。
【在 u*****r 的大作中提到】 : inheritance ; composition; ...... 请大家讨论
|
|