Vibe Coding 三个月,面试官问我数据库索引原理,我沉默了

Vibe Coding 三个月,面试官问我数据库索引原理,我沉默了

一个关于"AI 帮你写了 80% 的代码,但你自己的 20% 去哪了"的真实故事。
GitHub:bb-cccc/vibe-upskill
如果这个工具对你有用,给个 Star ⭐


那一刻的沉默

“你在这个项目里用了 PostgreSQL,能说说为什么不用 MongoDB 吗?”

面试官问完,我沉默了大概五秒钟。

那个订单系统是我两周前用 Cursor 做的,代码跑得很好,日均处理 10 万单。数据库确实是 PostgreSQL。但我脑子里只有一句话——“Cursor 帮我选的,它说这个数据一致性更好。”

最后我挤出一句:“因为订单数据需要事务支持,PostgreSQL 的 ACID 保证更好。”

“那 PostgreSQL 的 MVCC 机制是怎么工作的?你们的慢查询是怎么排查的?索引优化你做了哪些?”

面试官连追三问。

我又沉默了。

当时脑子里闪过一个念头:我是不是被 Vibe Coding 养废了。


Vibe Coding 的阴暗面

Vibe Coding 这两年太火了。用 AI Agent 写代码,从建表到写 API、从 Redis 缓存到 Docker 部署,全程 AI 搞定。后端、前端、运维,在座的各位至少 80% 已经在这么干了。

但有个副作用没什么人聊。

AI 帮我们做了太多决策。选数据库还是选缓存、索引怎么建、SQL 怎么优化、Docker 怎么配——Agent 一条龙。系统跑起来了,但你问我"为什么这么设计",我只能说"Agent 说的"。

长此以往,想象一下:

  • 你在简历上写"独立设计日均 10 万单的订单系统架构"
  • 面试官追问"数据库读写分离怎么做的?Redis 缓存穿透怎么防?慢查询怎么定位的?"
  • 你脑子一片空白——因为这些都是 Agent 替你决策的

项目经验是你的。但项目里的能力,不是你的。


我是怎么发现这个问题的

上个月我开始准备跳槽。翻开过去半年用 AI 做的 5 个项目——订单系统、用户中心、消息推送、日志平台、API 网关——我试图总结"我学到了什么"。

答案是:几乎想不起来。

不是没学到东西。知识点都散落在几十轮 Agent 对话里,被埋在了"好的"、“帮我修复一下”、"这个报错怎么解决"之间。没有人帮我梳理。没有人帮我提炼。更没有人帮我复习。

那些关于 PostgreSQL 索引优化的讨论、Redis 缓存策略的权衡、Docker 容器 OOM 的排查过程——全忘了。

所以在一次失眠之后,我写了一个工具。一个Claude Code Skill


vibe-upskill:把你的 Agent 对话变成你自己的面试题库

名字叫 vibe-upskill。一句话说清楚它做什么:

把你跟 AI Agent 的开发对话,提炼成你能在面试时独立回答的场景题、避坑清单和结构化知识库。

不是让你不用 AI。是用了 AI 之后,把 AI 的决策智慧内化成你自己的东西。


它怎么做?三件事。

🧲 第一件事:从对话里挖金子

你跟 Agent 的聊天记录里藏着大量有价值的东西——为什么选 PostgreSQL 不选 MongoDB、慢查询怎么排查的、Redis 缓存策略怎么定的。但没人去翻几百条聊天记录找这些东西。

vibe-upskill 会。它从你的对话中扫描 5 个维度:

  • 架构决策:数据库选型、读写分离、缓存策略的权衡
  • 代码实现:API 设计、连接池配置、事务管理
  • 排错过程:慢查询定位、OOM 排查、死锁分析
  • 部署运维:Docker 编排、CI/CD 配置、环境变量管理
  • 方法论:Agent 怎么拆解问题、怎么对比方案

每条知识不是简单的"做了 A 然后 B"——而是追问到底层原理和可迁移教训。

比如我复盘数据库选型的对话后,它这样提炼:

【底层原理】PostgreSQL 的 MVCC 通过元组版本链 + 事务快照实现读不阻塞写——UPDATE 不直接覆盖旧行,而是插入新版本,旧版本由 VACUUM 回收。

【可迁移教训】选数据库的第一原则是"数据模型长什么样"——如果你的数据之间有关系(订单→用户→商品),关系型数据库天然匹配;如果你的数据是独立的文档(如用户行为日志),MongoDB 更自然。不要用"哪个流行"来决定。

这不只是"记了一个结论"。这是换一个项目也能用上的判断力。


🎯 第二件事:生成能打的面试题

知识点提炼完还不够。你要能在面试时独立输出。

Skill 自动生成 10 类面试题:

类型考察什么后端示例
场景设计题给定业务,设计技术方案“设计一个秒杀系统的库存扣减方案”
Bug 排查题给定错误现象,分析根因“线上数据库 CPU 突然 100%,你从哪几个方向排查?”
深挖原理题追问技术选的底层原因“PostgreSQL 的 MVCC 和 MySQL 的 MVCC 有什么不同?”
代码审查题发现并发代码中的问题“这段事务代码在高并发下有什么问题?”
项目表达题清晰介绍项目亮点和难点“用 3 分钟讲清楚你的订单系统架构”
系统设计题规模扩展设计“从日均 1 万单扩展到 100 万单,架构怎么演进?”
运维排障题线上故障排查“凌晨 3 点收到 Redis 内存告警,你的排查步骤?”
方案对比题对比两种方案优劣“Redis Cluster vs Codis,你怎么选?”
复盘反思题回顾项目,提炼改进“如果重做这个项目,改哪三个架构决策?”
测试质量题设计测试用例“为订单服务的幂等性设计 5 个测试用例”

最狠的是每道题的"反事实推理":

  • 如果数据量涨到 5000 万,你现在的索引方案还扛得住吗?
  • 如果把 PostgreSQL 换成 MySQL,你的 SQL 要改哪些?
  • 如果公司要求自建 Redis 而不是用云服务,你的运维方案怎么变?

面试官就这么追问的。你准备好了吗?


🗄️ 第三件事:让知识不白学——间隔复习系统

你有没有这种经历——看了一个知识点,觉得懂了,三天后完全忘光。

vibe-upskill内置了 SM-2 间隔复习算法。每次复述后自己打分:

  • 0 分(完全卡住)→ 明天再复习
  • 1 分(部分回忆)→ 间隔缩短
  • 2 分(流畅复述)→ 间隔拉长:1天 → 3天 → 7天 → 14天 → 30天 → 60天 → 120天

每次打开 Skill,它自动告诉你今天有哪些到期该复习的题。你不用记"什么时候该复习什么"——系统替你记。

超过 90 天的知识点自动触发季度审查——PostgreSQL 版本升级了、Redis 新特性取代了旧方案——及时归档,不让知识库变成垃圾场。


还有一个很"狠"的设计:复述强制

题目生成好了,不让你直接看答案。

Skill 要求你先用自己的话口述一遍,然后才显示参考答案。这不是折腾你——看过 ≠ 理解,能说清楚才是真理解。

跳过一次可以。连续跳过 3 次提醒你。跳过 10 次直接暂停——“不让你骗自己’看懂了’”。

我自己被这个机制整过。有道题是"介绍你的订单系统架构",我想着这还不简单。结果开口才发现——我说不清数据库读写分离后,从库延迟怎么处理。当时脑子里闪过的只有 Agent 那句"读从库,写主库",但延迟怎么办?哪些读必须走主库?我一个都答不上来。

那个瞬间我才意识到:我以为我会的,其实只是"我看 Agent 做过"。


Vibe Coding 没错,但你得会"善后"

写这篇博客不是在劝你别用 AI。我自己每天都在用。省下的时间是真实的。

问题是——省下的时间,你是拿去刷短视频了,还是拿去内化知识了?

如果你想把自己用 AI 做的项目真正变成你自己的东西,试试这个 Skill。

安装只需一句话——把这行字发给你常用的 AI Agent:

帮我安装这个 Skill:https://github.com/bb-cccc/vibe-upskill

不需要配环境。不需要装依赖。Agent 自己搞定。


最后说一句

Vibe Coding 时代,会用 AI 写代码的人会越来越多。

但离开 AI 还能独立设计数据库、独立排查慢查询、独立做架构决策的人,会越来越少。

这不一定是坏事——因为那才是你的护城河。

下次面试的时候,不要只说"Agent 帮我选的"。


GitHub:bb-cccc/vibe-upskill
如果这个工具对你有用,给个 Star ⭐