AI写代码听起来很美,但系统设计这活儿它真干不了
Vibe Coding 的幻觉:为什么 AI 能写代码,却替代不了系统设计师
说实话,我们都经历过这一刻。发现一个新的 AI 编程工具,突然觉得自己什么都能做。"要是早点有时间把那个 idea 实现就好了"——现在时间来了。只要把你的需求说出来,和 AI 来回聊几次,就能上线了。
这种感觉让人上头。但也危险。
"凑合能用"代码的诱惑
上个月,我决定测试一下 vibe coding 的边界,打算给 AI 助手做一个小小的记忆系统。就是那种能让编程助手跨会话记住学到的东西,不用每次从零开始的功能。
能有多难?存一些信息,需要时取出来,冲突了标记一下。一个智能数据库加一个好用的 API。
代码写得飞快。真的飞快。我用的 AI 助手噼里啪啦搞出了一个 Rust 后台程序、分类系统、四种检索策略加本地模型重排序。从任何角度看都很漂亮。测试全过。编译器没意见。
然后我开始用了。
事情是这样的:给 AI 做记忆系统,核心问题根本不是存储。是意义。而意义这玩意儿,在哲学上比你想的麻烦多了。你精心写的一堆类型定义,感觉就像造火箭的时候忘了算重力。
没人讨论的冲突检测问题
我的目标其实很简单:AI 学了新东西,就检查一下跟它"已知"的东西有没有冲突。听起来合理吧?一个记忆系统和自己的其他记忆打架,还不解释原因,那不只是没用——简直是添乱。上下文窗口里塞满了互相矛盾的信息。
这有什么难的?比较两个事实,发现冲突就报告。
但是——
在这种系统里,什么才算"冲突"?如果 AI 周一学到"X 项目用的是 PostgreSQL",周二学到"X 项目用的是 MySQL",这是冲突吗?也许技术栈换了。也许某个信息源错了。也许"X 项目"指的是两个不同的项目。也许"用"在不同语境下含义不同。
人类处理这些,靠的是多年积累的常识、上下文环境,还有一种说不清道不明的"这事不对劲"的感觉。AI 系统倒是能对任何一种解读都生成自信满满的文字,但那种自信往往只是模式匹配,底下没有真正的理解。
Vibe coding 在哪里卡壳了
Vibe coding 解决能说清楚的问题,那是相当拿手。代码有 bug?描述一下症状。需要一个函数?把输入输出说清楚。AI 实现起来又快又好。
但系统设计——真正的系统设计——处理的是你说不清楚的问题。是预测还没存在的组件之间怎么互相影响。是问"如果……会怎样",针对那些你压根没想过的情况。
当我跟 AI 助手说"实现一个冲突检测",本质上是在让它解决一个我自己都定义不清楚的问题。结果嘛……挺有创意的。我们折腾过 Belnap 格、四值逻辑、用 Agda 做形式化验证、Petri 网。助手对什么想法都来者不拒,说实话,有些点子确实有意思。
但"有意思"不等于"能用"。
Agda 里的证明是正确的。架构文档写得很漂亮。结果系统还是没法可靠地检测冲突,因为我们形式化的那个抽象从根上就歪了。相当于在沙子上盖了一座漂亮的教堂,AI 和我都没发现这个问题,直到已经投入了好几个月。
让人不舒服的真相
vibe coding 的支持者不会告诉你的事情是:软件开发最难的部分从来不是敲代码。是搞清楚到底要做什么。
这话一直都对。变化的是,从"有个想法"到"有代码"之间的距离,现在已经大大缩短了。这对原型开发、学习、探索可能性来说,是真的香。
但这也意味着,你失败得更快、成本更高了。你能生成一堆看起来很靠谱的代码,解决的却是个错误的问题。等你发现的时候,可能已经在有缺陷的地基上搭了一整个系统。
真正有用的是这些
说这些不是要否定 AI 辅助开发。不完全是。但用好 AI,需要的技能和纯coding能力不太一样:
知道自己不知道什么。 当 AI 在你陌生的领域给出一个方案,别急着说"听着不错,实现吧"。那恰恰是你该深挖的时候。
原型必须狠狠测。 你在做一个记忆系统?那花和开发一样多的时间去找它的毛病。特别是那些你自己都不知道存在的前提假设。
自信不是你的。 AI 助手对某个设计决策很自信?那自信属于模型,不属于你的理解。一个你没有深入理解的系统,你也没法维护和调试。
系统设计还是个正经学科。 用 AI 更快地探索设计方案、更快地实现系统模块、原型化那些以前要好几周才能手动搭出来的想法——这些都行。但你仍然需要一个人来判断这个设计是否合理、组件之间是否正确交互、核心抽象能不能立住。
总结
我的记忆工具还在做。慢慢变好。我学会了问不同的问题、测试得更严格、对"凑合能用"的结果更加警惕。
我也学会了尊重"代码能跑"和"系统正确"之间的距离。这条鸿沟一直都在。AI 工具没有填平它,只是让你更容易假装它不存在。
最厉害的 vibe coder,不是 prompt 写得最好的那帮人。是知道什么时候 vibe 不对劲的人。
想探索 AI 辅助托管和开发的可能性?NameOcean 的 Vibe Hosting 搭配强劲基础设施和你需要的工具,帮你构建、部署、扩展下一个项目。