面试真题讲解
逐题讲清解题思路、关键实现与常见追问。
数据工程面试:如何设计 SCD Type 2 维度并保留正确历史?
用代理键、左闭右开有效区间、幂等加载、删除语义、迟到修正和不变量检查,设计时点正确的 SCD Type 2 维度。
如何回答“讲一次你辅导同事成长的经历”?
用 STAR(R) 讲清你如何诊断同事的成长障碍、共同设定目标、提供逐步撤除的支持,并用独立完成能力而非自己的投入证明辅导有效。
操作系统面试:什么是文件描述符,如何排查 Too many open files?
从进程 FD 表、open file description、EMFILE 与 ENFILE,到 /proc 诊断、泄漏判定、容量预算和修复验证,完整回答 Linux 文件描述符故障题。
产品经理面试:如何决定是否下线一个功能?
用依赖用户分层、机会成本、迁移门槛和分阶段退出计划,判断一个低使用率功能应该继续投入、进入维护模式,还是安全下线。
前端面试:React key 如何控制状态保留与重挂载?
从可编辑列表错行和详情表单串状态出发,解释 React 如何按类型、位置与 key 判断组件身份,并给出稳定键、主动重置与状态保留的决策规则。
后端面试:如何解释 OAuth 授权码流程与 PKCE?
从授权请求、回调和令牌交换推导 OAuth 授权码流程,区分 state、PKCE、客户端认证与 OIDC,并用攻击场景和失败测试验证实现。
算法面试:如何序列化和反序列化二叉树?
用带空节点标记的前序遍历设计可逆编码,证明解码器如何恰好消费一棵子树,并处理非法输入、深树边界与替代格式。
数据工程面试:如何设计变更数据捕获(CDC)管道?
从 PostgreSQL WAL、初始快照和源位置推导无缺口 CDC 管道,并处理至少一次投递、删除、Schema 演进、复制槽风险、重放与数据对账。
系统设计面试:如何设计集中式日志系统?
从本地缓冲、持久消息流、选择性索引和对象存储归档出发,设计能承受日志风暴、下游故障、高基数字段和多租户噪声的集中式日志平台。
如何回答“讲一次你改进工作流程的经历”?
用 STAR 讲清你如何发现流程瓶颈、建立改进前基线、推动试点与采用,并用结果指标、质量护栏和复盘证明改进真实且可持续。
产品经理面试:如何做自研还是采购决策?
通过硬门槛、总体拥有成本、机会成本、真实工作流试点与退出设计,判断应该自研、采购,还是采用混合方案。
前端面试:JavaScript 事件循环如何工作?
从 task、microtask checkpoint 和渲染机会推导代码输出,解释微任务饥饿为何会卡住输入与绘制,并选择真正能让出主线程的拆分方案。
网络面试:TLS 1.3 握手如何工作,什么时候能用 0-RTT?
从完整握手、证书认证、HKDF 密钥派生到会话恢复与 HTTP 重放风险,讲清 TLS 1.3 的真实安全边界和上线决策。
后端面试:如何防止 SQL 注入?
用服务端参数化查询分离 SQL 代码与数据,通过固定白名单映射动态标识符,同时守住租户授权边界,并验证原生查询、存储过程和二次执行路径。
算法面试:如何求数据流的动态中位数?
用最大堆维护较小的一半、最小堆维护较大的一半,从不变量推导 O(log n) 插入和 O(1) 查询,并覆盖边界、正确性证明与滑动窗口追问。
系统设计面试:如何设计云文件存储与多设备同步服务?
从分片上传、不可变文件版本和游标增量同步出发,设计支持断点续传、离线编辑、冲突副本、版本恢复与安全回收的云盘服务。
数据工程面试:如何诊断并修复 Kafka 热分区?
从分区级 lag 和键分布定位 Kafka 热分区,计算积压增长速度,再根据真实顺序边界选择限流、分区内并行、新分区键与安全迁移方案。
如何回答“讲一次你处理多个冲突优先级的经历”?
用一段真实经历讲清你如何识别容量冲突、比较截止时间与影响、提出范围和排期选项、让相关方确认取舍,并同时交代被延后事项的结果。
产品经理面试:如何制定新 B2B SaaS 产品上市计划?
通过一个 B2B SaaS 上市案例,练习选择首发细分市场,把定位、包装定价和渠道连接到购买路径,并用分阶段门槛决定放量、迭代或暂停。
前端面试:如何防止 Web 应用中的 XSS?
沿着不可信数据到浏览器注入点的路径排查风险,按产品意图选择文本渲染或 HTML 净化,并用 CSP、Trusted Types 和对抗测试补齐纵深防御。
TCP 连接生命周期:三次握手、四次挥手与 TIME_WAIT
从序列号同步、连接状态和主动关闭方出发,解释 TCP 的建立与关闭,并用临时端口容量、套接字状态和抓包证据诊断 TIME_WAIT 与连接超时。
后端面试:如何设置数据库连接池大小并排查连接耗尽?
从数据库总连接预算、请求并发和副本数量推导连接池上限,再用应用排队与 PostgreSQL 会话状态区分池过小、连接泄漏和数据库过载。
算法面试:如何用二分查找目标值的首尾位置?
用 lower bound 与 upper bound 统一处理重复值、空数组和目标不存在的情况,并通过半开区间不变量证明 O(log n) 解法正确。
系统设计面试:如何设计分布式锁服务?
从强一致锁状态、租约续期和 fencing token 出发,设计能抵御进程暂停、网络分区、响应丢失与主节点故障的分布式锁服务。