在本章中,您将被要求设计一个新闻提要系统。什幺是新闻系统?根据Facebook 页面,“News feed 是中间不断更新的故事列表。您的主页。动态消息包括状态更新、照片、视频、链接、应用活动记录和喜欢您在 Facebook 上关注的人、页面和群组“[1]。这是一个常见的面试问题。类似的问题有:设计Facebook新闻提要,Instagram 提要、Twitter 时间线等
第 1 步 - 了解问题并确定设计范围
第一组澄清问题是了解面试官的想法当她要求你设计一个新闻提要系统时。至少,你应该弄清楚支持哪些功能。以下是应聘者与面试官互动的例子:
应聘者:这是移动应用进程吗?还是 Web 应用进程?还是两者兼而有之?
面试官:Both
应聘者:有哪些重要功能?
面试官:用户可以在动态消息页面上发布帖子并查看其朋友的帖子。
应聘者:新闻提要是按时间倒序排序还是按任何特定顺序排序比如题目分数?例如,来自密友的帖子比重更高。
面试官:为了简单起见,让我们假设提要是按时间倒序排序的订单。
应聘者:一个用户可以有多少个好友?
面试官:5000
应聘者:流量是多少?
面试官:1000万DAU
应聘者:Feed 可以包含图片、视频还是仅包含文本?
面试官:它可以包含媒体文档,包括图像和视频。
现在您已经收集了需求,我们专注于设计系统。
第 2 步 - 提出高级设计并获得支持
该设计分为两个流程:Feed 发布和新闻 Feed 构建。
- Feed 发布:当用