下面这道题,来自 Roblox 的系统设计面试。
面试中,题目会直接给出需求,然后从这里开始聊。
Interview Question(原文)
Roblox has a marketplace with millions of items for sale.
For each item, users can choose to flag it as a favorite (similar to Like or Bookmark).
An item which is flagged can be un-flagged.Design a system which is able to show the number of favorites each item has.
User Stories:
- As a user, I want to know if this item is flagged as a favorite for me (1M qps)
- As a user, I want to flag/unflag this item as a favorite (100k qps)
- As a user, I want to see the count of all users who had flagged this as a favorite (1M qps)
Extra:
– As a user, I want to see the list of items that I have favorited. (50k qps)
面试从这里展开。
你会先确认收藏是可逆的,读写量级差异很大,计数是核心能力。随后讨论会自然进入数据怎么存、计数怎么读、写入怎么更新、以及在高并发下如何保持响应速度。
过程中,面试官会根据你当前的回答继续往下走:
如果缓存命中失败怎么办,取消收藏是否影响计数准确性,重复请求会不会造成数据问题,列表页和单 item 页的访问路径是否一致。这些问题不会一次出现,而是在对话中逐步展开。
**CSOAHelp(csoahelp)**的服务,就是在这种正在进行的面试过程中陪你一起走。
当你在描述系统、画结构、回答追问时,关键点的提醒、逻辑顺序的梳理、以及下一步可能展开的方向,会同步提供支持,让对话保持连续,而不是停下来重新组织。
这类 Roblox 风格的问题,往往会在同一题目下聊很久,CSOAHelp 做的事情,是帮你把这段时间稳稳走完。
如果你也在冲Roblox/FAANG,欢迎加入 CSOAHelp 题库群或预约 1v1 mock——我们有最新真题更新、澄清模板、代码优化指导。扫码/官网 csoahelp.com 咨询,助你高效通过!加油~
我们也有代面试,面试辅助,OA代写等服务助您早日上岸~

