
开发者谈AI编程:朋友用Claude Code做出的餐厅应用难以维护
来源标题:Vibes Don't Maintain
一位开发者检查朋友用Claude Code为餐厅搭建的员工任务管理应用后发现,该应用虽然界面整洁,但缺少响应式布局、登录、设置和翻译等基础功能。作者借此指出,仅靠AI快速生成的应用在后续维护和实际使用上存在明显短板。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
ChatGPT火起来之后,总有人跑来跟我说些类似“你们这行很快就要没饭碗了”的话。
说这话的大多是管理者。他们知道这话带挑衅意味,也想看看我什么反应——一部分是想试探这到底是不是个真实的场景。他们的共同点是,没有一个人真正清楚软件开发到底是什么。不是从外面看上去的样子,而是它本身是什么。
上周我经历了这类对话里最精彩的一次。
我一个朋友开了家餐厅。他跟我说他用Claude Code给餐厅做了个应用——一个给员工管理任务和流程的Web应用。他很自豪,他完全有理由自豪。他从没写过一行代码,而屏幕上确实有了个东西,能做他描述的那些事。
我看了一眼。挺不错。布局干净,流程合理,数据在页面刷新之间能保留,用起来像个能跑的系统。
然后我开始挑毛病。没有响应式布局——在他员工实际会用的手机上直接崩掉。没有暗黑模式🏴☠️。没有登录,也就谈不上谁做了什么。没有设置。没有翻译——后厨里一半人根本不说这个应用所用的语言。没有错误状态。没处理空数据的情况、重复的情况、两个人同时编辑同一条的情况。数据所谓的“持久化”,能扛过一次刷新就到头了。
这是个可点击的原型。一个demo。一个非常好的概念验证,适合拿来做第一轮讨论、看看这个想法站不站得住脚——这本身是真实且有价值的东西。
然后他问我能不能帮他托管,顺便做运维。
这是人们对软件最大的误解,而且跟AI毫无关系。
人们看到的是表面。他们看到的是能跑的部分。他们看不到出了问题才运转的部分,看不到为了防止出问题而存在的部分,也看不到那些在生产环境里从未执行过一次的部分——它们只是为了某个有人坐下来想象过的最坏情况而存在。
你车里的安全带和安全气囊,运气好的话,从来没起过作用。这不代表它们没用。你系安全带不是因为法律要求,也不是因为车在滴滴叫。你系安全带是因为你明白总有一天可能会用上。软件大部分都是安全带。快乐路径——demo演示的那部分——只是代码库里最小的一块。
我朋友看不到这一点,这可以理解。他的理解是:应用100%按预期工作,所以90%的活已经干完了。剩下的就是托管。我不该把它搞复杂。
原型几乎免费、几乎瞬间就有了。他认定产品完成了。他甚至可能真把它推到用户面前——他的员工开始用它排真实的班、做真实的任务、看真实的排班表。
然后出事了。数据库文件损坏。某个依赖更新弄坏了东西。有人在公网上发现了这个应用,四处翻了翻。某个没人写下来的边缘情况触发了。或者我最喜欢的:夏令时,排班表上每个班次都差了一个小时。
他不知道他造了什么。他不知道为什么要这么造——那些推理存在于一个已经消失的聊天会话里。他不知道该找什么,也不知道从哪儿开始找。没有规格说明,没有测试,没有文档,没有一条commit message能解释任何东西的意图。
到那时他有两个选择。找人来修,并准备好把所有的钱都交出去,因为这种合作的第一周纯粹是考古。或者跑路出国。
这就是“vibes don't maintain”在实际中的含义。那股劲儿把他带到了demo。从那儿往后,什么都没传下来。
这一切都不是说“别用AI”。我们每天都在用。但有两件事同时成立。
第一:如果你的背景是烤面包,AI不会让你变成软件工程师,就像你家里的烤箱不会让你变成大厨一样。它让执行变便宜了。但它对“该执行什么”、以及“执行失败时该怎么办”毫无帮助。
第二:垃圾进,垃圾出。如果输入是对快乐路径的一段松散描述,输出就是一个快乐路径。AI不会替你把安全带发明出来。它不知道你会需要,因为你没告诉它。
在热潮中存活下来的不是代码。而是代码本该做什么的记录——那些用户故事、规格、决策——写在某个人或某个agent能读回来的地方。我们的记录是git里的markdown文件,和bacon-tracker放在一起。我朋友有的是一个他再也找不到的聊天记录。
你付钱买的是那份记录。不是那个可点击的原型。
他的请求里,以及所有那些“你要没饭碗了”的对话里,还藏着第二个问题:如果这个工具真能干我的活,那我到底是干什么用的?但那是另一天的话题了。
第二天我给他打了电话。我跟他说我买了个美善品——带AI的那款——打算下周开家餐厅。
他笑了。然后沉默了一秒。
我希望他听懂了。但以我对他的了解,我觉得他没有。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。