快手主站增长前端一面面经

公開日: 2026-07-30 16:00 1874文字 10 min read

smile丶snow avatar

smile丶snow

大三/前端开发/百合汉化组成员/百合/日语/偶尔做动态壁纸

2026.08 - 至今
bilibili
bilibili公益平台
2026.06 - 2026.08
百度
前端数据平台
2026.03 - 2026.06
快手
快手前端电商
2025.12 - 2026.03
蓝色光标
前端开发实习生
この投稿は「日本語」では表示できません。元の投稿を表示しています。
快手主站增长前端一面面经,重点围绕 AI 研发工作流、Codebase Index、MCP 与 Skill、OpenSpec、Browser Agent 自测、前端业务项目和工程判断展开。

快手主站增长前端一面

面试时间

2026_0730-16:00

面试内容

  1. 自我介绍
  2. 讲一个你觉得比较有意思的项目
  3. UI 是怎么设计的,是基于经验找材料吗?
  4. 是直接写代码,还是做了 Figma 设计稿?
  5. 在这个项目里面你做了什么?有做 SEO 优化吗?
  6. 做这个项目平台的目标是什么?
  7. 使用 Next 的时候遇到过什么问题?
  8. useAsyncFetch 这类请求方法里面大概实现了什么功能?
  9. 有没有遇到过同一段逻辑需要在前端和服务端执行,但需要不同实现逻辑的案例?
  10. 讲一讲你在 AI 相关方向做的事情,挑选一个完善的项目介绍
  11. 为什么把模块结构写在各个模块下的 README,而不是直接写在 AGENTS.md 里引用?
  12. 有什么衡量方式可以证明自动生成 README 这件事带来的收益是正向的?
  13. 这件事体感上有什么正面例子?
  14. 了解过业界在代码索引这个方向做的相关工作吗?
  15. ts-morph 是用来做什么的?
  16. 如果是 Vue 写的组件,要怎么提取注释信息?
  17. 讲一讲你在快手业务中做的事情
  18. 在快手业务中你觉得比较有趣的工作是什么?
  19. 在做模型选型切换的时候有没有做数据收集?如何判断选用的模型是否符合需求?
  20. 在这件事情中你的重点负责内容是什么?
  21. Browser Agent 自测相关,你做了哪些工作?
  22. Node 写的 MCP 的功能是什么?
  23. 为什么使用 MCP 的方式,而不是使用 Skill?
  24. AI 自然语言检索与自动建联 Agent 工作流是什么?
  25. 在这个 Agent 工作流中你重点做的事情是什么?
  26. 你的实习预期是什么?
  27. 前两段实习为什么很快就结束?现在为什么在找新实习?
  28. 打开之前写过的代码,讲解里面的逻辑
  29. 项目里大多数代码都是 AI 写的吗?
  30. 使用 AI 开发时你的工作流是什么样的?
  31. AI 写完代码后如何保证代码正确性,是否会 review 全部代码?
  32. 测试用例里面都写了什么内容?
  33. AI 自动测试发现问题、误报的情况怎么样?
  34. Spec 用的是哪一套方案?
  35. 使用 Spec 的过程中遇到过什么问题?Spec 不好用的点是什么?
  36. 在这个领域尝试过哪些工具?为什么最后选择 OpenSpec?
  37. 电商业务中是基于 OpenSpec 范式来写的吗?
  38. 反问:你们组大概做哪些业务?

面试复盘总结

1) 这场面试的核心画像

这轮面试不像传统前端八股,更多是在考察候选人是否真的能把 AI 工程化能力 落到业务研发流程里。

面试官追问的主线大概有四条:

  1. 项目目标是否清晰:做项目不是为了炫技,而是要能说明目标、收益和使用场景。
  2. AI 工作流是否可控:AI 写代码之后,如何 review、测试、验收、人工接管。
  3. 基础设施是否有技术深度:Codebase Index、MCP、Skill、OpenSpec、Browser Agent 不能只讲概念。
  4. 业务理解是否扎实:快手业务中做了什么,为什么要做拖拉拽低代码,模型选型如何判断效果。

2) Codebase Index 可以怎么讲

Codebase Index 的重点不是“把代码塞给模型”,而是先把代码结构化,再让 Agent 能低成本检索和理解。

可以从这几层回答:

  1. 解析层:用 ts-morph 或 TypeScript Compiler API 解析 TS/TSX 文件,提取函数、组件、类型、导出符号、注释、起止行号等信息。
  2. 结构层:把文件路径、模块职责、符号关系、import/export 关系组织成索引数据。
  3. 检索层:根据自然语言查询召回相关模块、组件、函数和 README,而不是全仓库盲读。
  4. 更新层:文件变化后做增量更新,至少能按文件粒度重新解析;实时编辑场景可以监听文件变更或在任务开始前刷新索引。
  5. 消费层:把检索结果注入 Agent 上下文,让 AI 先读相关代码,再做实现或回答。

如果不使用 RAG,也可以通过更轻量的方式提升检索效果:

  • 维护模块级 README,让模块职责和入口更清楚。
  • 建立路径、组件名、导出符号、注释的倒排索引。
  • 给常用模块加人工标签,比如 formchartauthlayout
  • 用 AST 提取结构化摘要,减少模型直接读长代码的成本。

3) Skill 和 MCP 的回答边界

这场反复问到为什么用 MCP、为什么写 Skill。可以这样拆:

Skill 解决“怎么做”
MCP 解决“能调用什么”
OpenSpec 解决“需求如何结构化”
Workflow 解决“这些东西如何串成稳定流程”

Skill 适合沉淀规则、组件库使用方法、代码风格、业务约束;MCP 适合把外部工具、文件系统、文档检索、代码索引、浏览器自测等能力标准化暴露给 Agent。

所以“为什么 MCP 而不是 Skill”的回答可以是:

如果只是告诉 AI 怎么使用某个组件,用 Skill 就够了;但如果要让 AI 动态查询代码索引、读取模块文档、执行自测或调用内部服务,就需要 MCP 这种工具协议。Skill 是说明书,MCP 是可调用能力。

4) AI 写代码后如何保证正确性

这类问题不要回答“AI 写完我看一下”。更好的表达是把验证链路讲完整:

  1. 需求层:先把需求拆成 Spec,明确输入、输出、边界和验收标准。
  2. 实现层:AI 生成代码后,人工 review 关键路径、状态流转、异常分支和安全边界。
  3. 静态检查:跑 lint、type check、单测、构建。
  4. 交互验证:前端页面用 Browser Agent 或 Playwright 检查主要路径。
  5. 回归记录:把 AI 出错的地方沉淀成规则、测试用例或 Skill。

可以补一句:

AI 可以提升实现速度,但最终责任还是工程师承担,所以我会把 AI 产物当成初稿,而不是直接合并的最终代码。

5) 这场面试最需要准备的数据

面试官多次追问“如何衡量收益”,所以讲 AI 和工程提效项目时,最好提前准备指标:

方向可以准备的指标
README 自动生成文档覆盖率、模块理解耗时、Agent 首次成功率
Codebase Index检索命中率、无关上下文比例、定位代码耗时
Browser Agent 自测自动发现问题数、误报率、人工接管率
SDD/TDD 工作流需求返工次数、测试通过率、交付周期
模型选型成功率、响应时延、成本、稳定性、人工修正次数

这场面试给我的提醒是:AI 项目不能只讲“用了什么工具”,还要讲 为什么这样设计、怎么证明有效、失败时怎么兜底

© 2026 smile丶snow @YukiBloom
Powered by theme astro-koharu · Inspired by Shoka