l****o 发帖数: 924 | 1 版上码工题多,architect面试题没怎么见过,把最近遇到的题发上来给大家做做参考
。这种题没有标准答案的,大家见仁见智。思路比答案重要。刚毕业的童鞋们可能这个
稍微困难些。
某投资银行,要建立向用户推荐相关信息的系统。用户是管理各种基金的基金经理。数
量大概几百一千人。
当前信息包括三个来源:公司内部研究报告,外部研究报告,会议日程安排。内部研究
报告是普通文件结构,可以理解成类似于word文件格式,有文字有图有排版。外部研究
文件是存在FTP server上的,需要系统自己去取。会议日程安排是存在数据库里的,需
要一个数据库接口。数据量大概是每天1000篇文件,要挑出很少的一小部分(十个八个
?)推荐给用户。注意当前信息三个来源,将来可能会增加,所以系统需要scalable.
来源于用户的信息有两种,一个是显性的,用户到某定制页面上去设置自己感兴趣的东
西,比如科技股,比如进出口数据,等等。另一个是隐性的,每个用户有不同的投资模
式(比如大公司,小公司,海外投资等等)和不同的基金holding(比如微软,苹果,
壳牌等等),隐性数据用户自己都不一定aware,但服务器数据库知道。
推荐信息是通过多种渠道deliver给用户的,有email,webpage, 有desktop
application, ipad application,等等不同的渠道,不同渠道优先级不同。比如email
是最快的,application是用户打开才更新,所以最低优先级。
系统要求:
1. 每个用户收到的推荐是不一样的,是为了该用户量身定做的。
2. 信息有的是需要实时送出的,有的低优先,要求每天晚上送一次就可以。如果每几
分钟送一次低优先级的信息会很讨厌。比如,分析师强烈推荐卖出苹果,对于持有苹果
股票的用户,这个就算紧急信息,需要立刻发出邮件,好让用户采取措施。对于帐上没
有苹果的用户,这个算简单的白噪声,可以完全不关注。对于自己不持有苹果,但明天
要跟持有苹果的同行开会的人,这个算一般信息,晚上接到一次一般信息更新就好了。
3. 什么重要什么不重要的规则可以随时制定,要求规则改变对系统的影响越小越好。
如果能不需要development effort就可以增加新的规则当然再好不过。
说明:
这是interviewer自己七年前做过的一个项目,两个architect作了30天,把模块设计一
步步细分到class。后来系统非常成功使用至今,成了他最得意的项目。 |
|