面试真题讲解
逐题讲清解题思路、关键实现与常见追问。
产品经理面试:要不要把内部开发者工具开源?
从用户问题、战略收益、许可证、维护能力与发布护栏判断内部工具是否适合开源。
后端面试:如何设计 OAuth 2.0 Device Authorization Grant?
为电视、打印机等受限设备设计设备授权流程,覆盖 device_code、用户码、轮询退避、错误状态与反钓鱼保护。
前端面试:如何设计可访问的 HTML Popover 浮层?
用原生 popover 属性、top layer、light-dismiss 与可关联触发器实现非模态浮层,并处理焦点、键盘和降级。
通用面试:如何验证 Merkle 树包含证明?
从叶子索引、树大小和兄弟路径重建根哈希,处理方向、域分离、边界检查与 RFC 9162 的证明约束。
编码面试:校验一段 UTF-8 字节序列
用状态计数器和位掩码在线校验 1 到 4 字节 UTF-8 序列,处理截断、非法续字节和超范围起始字节。
编码面试:设计一个餐厅桌位预约模块
用清晰的对象职责、时间区间冲突检测、等候队列和幂等状态转换实现可测试的桌位预约模块。
系统设计面试:如何设计多租户密钥轮换控制平面?
设计覆盖版本、消费方验证、渐进发布、紧急撤销与回滚的多租户密钥轮换系统。
系统设计面试:如何设计 API 兼容性与弃用控制平面?
把破坏性变更变成可发现、可验证、可灰度和可回滚的 API 生命周期治理系统。
系统设计面试:如何设计协调漏洞披露平台?
从报告接收、证据隔离、风险分诊到修复与公开披露,设计一条可审计、可回滚的漏洞协同流程。
数据工程面试:如何设计可验证的跨系统数据删除流水线?
围绕用户删除请求,设计从数据目录、事件传播、湖仓快照到备份隔离的可审计删除与保留策略。
通用面试:如何设计抗钓鱼的 Passkey 登录与恢复流程?
从 WebAuthn 的 challenge、RP ID、origin 和用户验证出发,设计服务端校验、同步凭据分级、恢复和降级方案。
前端面试:如何设计浏览器扩展的最小权限与渐进授权?
从 activeTab、主机权限和可选权限出发,设计浏览器扩展的最小权限、运行时申请、升级回滚与撤销策略。
编程面试:如何实现支持暂停恢复的可序列化迭代器?
从 next 语义、状态不变量、多数据源合并到异步恢复,系统回答如何让迭代器在保存状态后精确继续。
前端面试:如何用 WebCodecs 设计浏览器端实时视频处理流水线?
围绕帧、编码队列、Worker、时间戳、背压和能力探测,回答如何在浏览器中构建可观测且可降级的视频处理链路。
系统设计面试:如何设计影子流量验证系统?
设计一个生产安全的请求镜像系统,在不把新后端响应暴露给用户的情况下比较真实流量。
数据工程面试:如何设计并执行数据契约?
围绕共享事件数据集设计可版本化的数据契约,并回答 Schema 演进、质量校验、责任归属与安全失败。
系统设计面试:如何设计实时内容审核系统?
从发布延迟、违规风险和人工审核容量出发,设计多阶段内容审核、申诉、证据留存与模型反馈闭环。
后端面试:API 迁移时如何选择 308 与 301 重定向?
围绕方法与请求体是否保留,设计一次安全的 API 永久迁移,并处理缓存、幂等、跨域和回滚。
编程面试:如何设计支持 popMax 的最大栈?
在保留栈顶语义的同时支持 peekMax 与删除最靠近栈顶的最大值,比较辅助栈、双向链表和有序索引的复杂度与边界。
编程面试:如何实现支持 O(1) 操作的稀疏集合?
在固定整数宇宙中用 dense/sparse 两个数组实现插入、删除、查询、清空和遍历,并证明不变量、复杂度与边界。
前端面试:如何设计安全的本地网络访问?
为访问 localhost 或私有设备设计浏览器流程,避免公共网站静默扩大到本地网络的信任边界。
前端面试:如何为嵌入式功能设计安全的 Permissions Policy?
为跨域 iframe 设计最小权限策略,解释 HTTP 头与 allow 属性的组合、权限失败诊断和上线验证。
网络面试:什么是 DNS over HTTPS,什么时候应该使用?
从 DNS、HTTP、隐私、缓存和运维边界解释 DoH,再结合实际环境与普通 DNS、DoT 做选择。
系统设计面试:如何设计远程编译的分布式构建缓存?
设计内容寻址的构建缓存,保证命中正确、租户隔离,并在远程执行或存储故障时可降级。