项目描述:Facebook
简要了解“Facebook”,并学习本项目中我们将实现的功能。
简介
Facebook 是全球最大的社交媒体公司。该公司还拥有其他社交媒体平台,如 Instagram。Facebook 的工程团队持续探索在各个平台之间更高效地连接用户的方法。这使得用户能够通过彼此的连接,在所有平台上共享和查看内容。
本章讨论的情景和问题涉及 Facebook 在不同平台间的内容分享与浏览功能,以及如何对其进行优化。
问题描述
假设你是 Facebook 工程团队的一名开发者。你的团队需要提升各“姊妹”平台之间的集成度。集成过程中一个关键关注点是通过高效的代码、API 请求频率限制,以及消除同一用户在不同平台上的重复请求,来实现操作效率的提升。此外,团队还被要求借此机会实现检测潜在违规内容的功能。
功能需求
为实现上述功能,我们需要引入以下特性:
-
功能 #1:找出 Facebook 上属于某用户好友圈的所有人。
-
功能 #2:希望将该用户在 Facebook 上的好友推荐到 Instagram 上。由于 Instagram 是独立平台,其所有关联关系需复制到独立的数据库中。
-
功能 #3:同步 Facebook 的动态列表到 Instagram。
-
功能 #4:限制用户的请求频率。同一请求在另一平台发起前,必须等待指定时间间隔后才能再次发送。
-
功能 #5:识别被篡改的滥用词或粗俗词汇的变体,以便对包含这些词汇的帖子进行标记为不适当内容。
-
功能 #6:将相似的无意义帖子归类聚合,以便观察其编码规律。
-
功能 #7:对用户发帖内容进行模式挖掘,需在高性能集群上完成。你需要提出一种最优的帖子分配方案,使集群节点的处理能力得到充分利用。
-
功能 #8:找出用户提及的主题中最短的连续序列,该序列与好友提及的主题存在重叠。
-
功能 #9:为了向 Instagram 用户推荐广告,我们希望使用 Facebook 的推荐决策树。已知原始决策树以先序遍历和中序遍历的形式序列化存储,需要重建该决策树。
理解这些功能需求并设计相应的解决方案,将有助于我们将所需功能整合进 Facebook 系统。
在接下来的课程中,我们将讨论这些功能的推荐实现方式。在开始之前,建议你先思考如何实现这些功能。你可能会发现一些需要解决的基础问题。而这些问题的解决方案也适用于常见的编程面试题。