字节跳动 · CapCut

前端开发工程师(Agent)一面面经

完整信息

18 条问法 · 13 道题

本篇目录
先放面经,再聊楼主想法吧 (本来放了个飞书文档的,但是好像会违规,就不放了,看看下面的凑合下就好了) ---

一、自我介绍部分

1. 自我介绍 + 实习经历,项目中比较出色或复杂的部分 - 三段实习(字节剪映商业化 / B站直播平台 Agent Skill / 腾讯 TEG WorkBench 评测)+ CSISP Monorepo 全栈项目 2. 最近两段实习中的难点是什么?遇到了什么困难,最后怎么解决的? - 腾讯 WorkBench 评测框架扩展性:Harness/Model 分离、Job 容器化隔离、自研 Agent 的 CLI 契约化接入 3. 追问:这个偏「标准制定」,有没有更技术一点的、前端项目上的难点? - 字节实时属性配置抽离(2000 行前端硬编码 → 线上平台配置)+ React Hook 封装调度 4. 追问:用一句话分别总结这两件事 - ①解耦前端逻辑与配置逻辑,分两侧独立维护; - ②针对重复接口请求,用 Hook + 类 Promise 状态管理实现同缓存键仅一次请求 5. 点评式追问:第二件事本质就是接口缓存,那单聊接口缓存你有哪些方案? - 见下方第二部分

二、前端基础题(由项目自然延伸)

6. 接口缓存有哪些方案? - HTTP / 浏览器缓存层:请求携带 / 响应下发 Cache-Control(max-age)、Expires、ETag、Last-Modified,浏览器直接命中本地缓存,不实际发出请求(或只发协商请求)。 - 服务端缓存层:Redis 等中间件缓存,避免每次穿透到数据库;BFF(如 Modern.js)层也可挂 KV 缓存。 - 前端应用层:自行设计缓存 + 请求合并(去重),如按业务维度设计缓存键、in-flight 请求复用(pending 态挂起,复用同一 Promise);持久化可选内存 / localStorage / sessionStorage / IndexedDB。 总结:本质是请求去重(dedupe)+ 缓存(cache)的结合,等价于 SWR / React Query 的核心能力。 7. localStorage 与 IndexedDB 的区别? (不知道怎么发表格,凑合看看吧) 维度localStorageIndexedDB 数据形式仅字符串,需 JSON.stringify/parse支持结构化数据(结构化克隆算法),可直接存对象、Blob、File 容量约 5MB(各浏览器 5–10MB)受宿主磁盘配额限制,通常几十 MB 到 GB 级 同步性同步 API,会阻塞主线程强制异步,基于事件 / Promise 封装 API 能力极简 K*********/setItem)类数据库:object store、索引、游标、事务、版本迁移 兼容性更老更普及稍晚,但现代浏览器已全支持 使用成本极低较高,通常需 idb、Dexie 等库封装 8. 什么业务场景用 localStorage,什么场景用 IndexedDB? - localStorage:小体积、扁平、读写频率低的状态 —— 主题偏好(亮/暗)、语言设置、JWT / 登录态、引导弹窗是否已读、简单表单草稿。 - IndexedDB:结构化、体量大、需要查询能力的数据 —— - 在线画图 / 白板的操作历史与撤销栈; - 棋类对局的棋谱记录与悔棋栈; - 视频/图片编辑器的本地素材、缩略图、Blob 资源(与 CapCut 业务高度相关); - 离线优先应用的本地数据副本、大列表缓存分页。 9. 展开讲讲浏览器缓存 经典八股,但是我很久没背了,有些记岔了,AI 分析如下: ⚠️ 本场答题失误提醒:把「协商缓存」和 CORS 预检请求(OPTIONS preflight) 混淆了。 - 协商缓存 = 带 If-None-Match / If-Modified-Since 的正式请求,服务端返回 304 或 200,没有额外预检。 - 预检请求 = CORS 跨域机制,非简单请求先发 OPTIONS,与缓存完全无关。 - 「简单请求 / 非简单请求」也是 CORS 概念(由 method + 请求头 + Content-Type 决定),不是缓存概念。 另外 GET 请求默认可缓存是因为它是幂等安全方法,与「简单请求」无关;破缓存正确做法是响应头设 Cache-Control: no-store,或前端加时间戳 / 随机 query 参数。

三、手撕 & 算法

10. 手撕题:带最大并发上限的并发调度器 11. 算法题:最大子数组和(力扣 53) 两个题都是很经典的题了,详情看飞书文档即可,读者自行完成不难。

四、反问环节

1. Base 地在哪? - 广深 + 北京都有;本次是 CapCut 岗,若通过应为广深 2. 岗位实际业务内容? - CapCut 主做海外项目,图片编辑、视频编辑,以及其中的 Agent 开发 3. 组内 AI / Agent 使用程度?有没有 Harness 工程师? - 都有;目前用 Codex 较多,代码贡献率很高,大量代码由 AI 输出;Harness 工程各方向都有沉淀 4. 结合本场面试,我还有什么可以精进的? - 「面试的时候可以讲得更重点一些,沟通还可以,但讲的东西重点比较少」(原话,只有这一句话) 5. 对校招生进来的期待是什么水准? - 能独立跟进需求,与协作方顺畅沟通;转正后独立负责需求即可 6. 岗位到底是全栈还是前端? - 主要是前端。走的是简历池,本次面的是 CapCut 前端,与「即梦全栈」是两个不同方向(那边还没面) #面经##发面经攒人品##秋招##前端# --- BB 时间 感觉是字节面多了,面的过不过都有预感了。昨天有个朋友和我差不多一个点面(不是同方向),他晚上就被通知过了,我一直到今天下午都没回应,当时就感觉要挂了——但是我转念一想,2 大厂 1 中厂实习 + 老东家一面,面试也不算答得非常差,应该最后还是有可能给个过、起码不脏面评吧。结果最后还是挂了,有的时候真不得不感慨我的第六感真挺准的 之前本来就已经说是面评有点脏,至少抖音直播和剪映可能是不会要我的了;但是后来我在 SSOB 联系了一个剪映的(老东家),结果上周就给我约面了,当时还真有点没想好就接了其实在🐧快一个月时间,一直在做 agent 测评的工作,没自己写过代码也没有做过正经前端开发,所以对前端很多八股知识早就遗忘了,也对自己的简历问答点有点遗忘了,算法也没咋刷,所以面的结果确实一般。估计这一次下来,面评就真脏了(此前暑期已经挂过三次,具体可见之前发的帖子),我看和我联系的 hr 都不理我了,以前挂了都是 hr 通知,这次是直接发感谢信 这下真成节黑子了,希望组内能给我留到个 hc,我真想拼一个转正了
本篇目录
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
  9. 09
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18

相关公司