面试项目深挖总栏目(字节跳动 · AI 应用开发 / Agent 剪辑)
这个栏目是什么:把可写进简历的项目,各做成一套「面试深挖包」——口述稿、技术深挖问答、压力面话术、速背卡片、事实与代码索引。
原先三套材料分散在三个互不相干的目录(
面试项目深挖/Vistack、面试-BinRag、面试-EasyCoding),导航栏里也只挂得上一个。现已合并到本栏目下,多个项目平级、结构一致、每个项目一个入口页。各项目共用一条纪律:代码里有的照实说,代码里没有的一律不编。每个项目的入口页都有「诚实边界」一节,面试前必须先读。
一、栏目结构
docs/面试项目深挖/
├── index.md ← 本页:栏目总览与选材建议
├── Vistack/ ← 项目一:分布式视频平台(Go 后端 / 分布式主场)
│ ├── index.md 入口页(事实底盘 + 阅读顺序)
│ └── 01-…11-*.md 11 篇深挖正文
├── BinRag/ ← 项目二:RAG 文档知识库问答(AI 应用 / RAG 主场)
│ ├── index.md 入口页
│ ├── 00-…09-*.md 10 篇深挖正文
│ └── _源码档案(逐行核对用)/ 6 篇逐行核对档案(查证用,不必背)
├── EasyCoding/ ← 项目三:终端 AI 编程助手(Agent 工程主场)
│ ├── index.md 入口页
│ └── 00-…08-*.md 9 篇深挖正文
└── ShatangAI/ ← 项目四:电商 AI 视频生成平台(后端异步一致性 + 资金一致性主场)
├── index.md 入口页(含「诚实边界」与事实校正表)
└── 00-…13-*.md 14 篇深挖正文| 项目 | 篇数 | 体量 | 入口 |
|---|---|---|---|
| Vistack | 12 | 约 4,200 行 | 进入 → |
| BinRag | 16(含 6 篇源码档案) | 约 13,800 行 | 进入 → |
| EasyCoding | 9 | 约 8,500 行 | 进入 → |
| ShatangAI | 17(含入口页) | 约 6,390 行 | 进入 → |
二、四个项目各打什么牌
面试官问「讲讲你的项目」时,先想清楚这一场你要用哪个项目唱主角——四个项目的主场完全不同,别混着讲。
| 项目 | 一句话定位 | 技术主场(面试官会往哪挖) | 适合什么岗 |
|---|---|---|---|
| Vistack | Go 写的云原生分布式视频平台,单二进制拆 api / worker / transcoder / auth 四角色 | Kafka 异步编排、gRPC + etcd 远程转码、DASH/ABR、Redis 缓存限流、鉴权与防盗链 | 计算机基础 + 性能/架构设计;与「AI 剪辑」的转码链路天然同构 |
| BinRag | Go 写的企业级文档知识库 RAG 问答系统 | 混合检索(BM25 + 向量)、RRF、cross-encoder 重排、MCP Server、多租户安全、评估体系 | AI 应用开发中的 RAG / MCP 部分 |
| EasyCoding | Go 从零手写的终端 AI 编程助手(对标 Claude Code) | ReAct 循环、双 LLM 协议抽象、五层权限防御、MCP 客户端、两层上下文压缩、JSONL 会话 | Agent 运行时是你自己写的,最贴 AI 应用开发 |
| ShatangAI | 已上线的电商 AI 视频生成平台(Express 5 + PostgreSQL 17 + Redis + BullMQ) | 异步任务一致性(队列拆分、状态机、崩溃恢复、并发收尾抢占)与资金一致性(积分冻结 + 部分唯一索引 + 对账巡检)、多段视频合成、14 种生成方式编排 | 唯一一个真实上线、有真实生产事故的项目;最贴「后端 + AI 应用」岗 |
选材建议
- 投「AI 应用开发 / Agent」岗 → 主角 EasyCoding,配角 BinRag;Vistack 用来接「性能与架构设计」类追问。
- 投「后端开发」岗 → 主角 ShatangAI(异步任务一致性 + 资金一致性是硬通货),配角 Vistack(分布式与存储)。
- 投「AI 应用开发 / Agent」岗的第二套材料 → ShatangAI 的
14(Skill 分层与 Token 预算、越权句式剥离)与15(长视频分段一致性与依赖图调度),可作 EasyCoding 之外的补充。 - 被问「你做过跟剪辑/视频相关的吗」 → 从 Vistack 的转码流水线切入(Kafka 编排 + 转码状态机 + 重试看门狗),这正是 AutoCut 类业务要的形状;再补 ShatangAI 的"多段生成 + 尾帧桥接 + 自研 ffmpeg 拼接"。
- 被问「有没有线上经验 / 怎么排查故障」 → 只有 ShatangAI 能答(它有 10 个带证据的生产事故故事,见其
09分册)。 - 四个项目的安全题可以互相借力:EasyCoding 的权限沙箱、BinRag 的多租户越权、Vistack 的防盗链、ShatangAI 的
SECRET_KEY兜底与裸头身份,是同一个「最小权限 / 纵深防御」思路的四次落地。
三、各项目共用的三条纪律
- 不编数字。四套材料都把「代码里有的事实」和「没实测的效果」分开标注(Vistack 的
09、BinRag 的08B 类数字、EasyCoding 的00事实校正表、ShatangAI 的00事实校正表与10修正话术)。没有基线就说「我没有可信基线,但可以说清怎么设计评估」。 - 主动交底。每个项目入口页的「诚实边界」列出不能吹的点。主动说出不足,比被挖出来强十倍——这条在四套材料里被反复强调。
- 先读入口页,再读正文。各项目的编号规则独立(Vistack 01–11、BinRag 00–09、EasyCoding 00–08、ShatangAI 00–13),不要靠记忆跨项目串号。
⚠️ ShatangAI 多一条纪律:它的简历描述与代码有 7 处不一致(首要是把 PostgreSQL 写成了 MySQL)。这个项目先读
00事实校正表与10压力面话术,再读口述稿——顺序反了会在面试里说出错误事实。
四、推荐阅读顺序(按剩余天数选)
只剩 1 天 → 只读「入口页 + 各项目最后一张速背卡」
- Vistack 入口页 →
10-速答题库与背诵卡 - BinRag 入口页 →
09-口袋速背卡片 - EasyCoding 入口页 →
08-口袋速背卡片 - ShatangAI 入口页 →
00-使用说明与事实校正→12-速背卡片
有 3 天 → 按「主干 → 深挖 → 压力面」跑,每个项目各占一天
| 时间 | Vistack | BinRag | EasyCoding | ShatangAI |
|---|---|---|---|---|
| Day 1 主干 | 01 三版口述稿 + 09 风险点 | 01 口述介绍 + 08 压力面 | 00 事实校正 + 01 口述稿 | 03 四条主线拆解 + 00 事实校正 |
| Day 2 深挖 | 02–07 按简历 bullet 挑着读 | 03 检索(加分主战场)+ 02/04 | 04 权限与安全 + 03 Agent 循环 | 04 队列与状态机 + 06 计费支付 |
| Day 3 收口 | 08 追问链实战 + 11 代码地图 | 09 速背 + 06 越权面 | 05 MCP 与压缩 + 06 压力面 | 09 事故故事 + 10 压力面 + 12 速背 |
有 1 周以上 → 每个项目按各自入口页给出的完整路线走,并把 BinRag 的 _源码档案(逐行核对用) 与 ShatangAI 的 13-代码地图与事实索引 当作查证材料:面试前抽查几处,防止代码迭代后口径漂移。
五、维护提示
- 所有材料都是某一版代码的快照,正文里的文件路径与行号会随项目重构漂移。面试前务必按符号名(函数名/常量名)抽查几处,不要直接背行号。
- BinRag 的
_源码档案(逐行核对用)/是「逐行核对过的技术事实」底稿;ShatangAI 的13-代码地图与事实索引自带一段「30 秒复查脚本」,面试前跑一遍即可确认关键事实没变。 - 新增项目时请沿用本栏目约定:一个项目一个子目录 + 一个
index.md入口页(含一句话定位 / 文档地图 / 阅读顺序 / 诚实边界),并在本页与docs/.vitepress/config.mts的 nav/sidebar 中登记。