上周,老板丢过来一个内部后台页面的需求,说 “不急,明天给就行”。我打开 v0,输入 “帮我生成一个用户管理后台,包含表格、筛选、分页、编辑弹窗”。一分钟,页面出来了。表格、按钮、弹窗、样式,一应俱全。我复制代码到项目里,跑起来,看起来没问题。然后接下来三个小时,我都在改它的代码。
v0 生成的速度确实快。但当我开始真正 “使用” 这份代码时,问题一个接一个冒出来:
data、items、itemData、filteredData……一个表格数据,四五个名字来回用。改一个地方,全局搜索半天。120px,手机上看溢出;表格列宽固定,屏幕一缩就横向滚动。没有响应式,没有移动端适配。useState 里,改一个导致别的组件无辜重渲染。null,页面直接白屏。没有 loading,没有空状态。这些不是 bug,是 “能用但没法维护”。
我花时间做的事,恰恰是 AI 最不擅长的事:
useReducer 管理筛选和分页。说实话,到最后我有点怀疑:如果我自己从头写,可能也就三个半小时。AI 帮我省了半小时,但我额外付出了 “读懂它逻辑” 的成本。这笔账,算不过来。
我知道,会有人说 “你不会写 prompt”“你不会调教”。也许更精确的 prompt 能生成更好的代码。但问题是,AI 生成的代码像一辆组装好的车,看起来能跑,但一上路就发现螺丝没拧紧,轮胎是歪的。它不是不能开,而是你需要先花时间检查所有零件。
对于不熟悉项目上下文、不知道团队规范、不了解业务细节的 AI 来说,生成 “能跑” 的代码已经是极限。而 “可维护” 的代码,恰恰需要这些信息。
所以,AI 到底帮了谁?帮我省了半小时打字时间?还是帮老板更快地看到 “可视的进度”?对于开发者自己,短期 “快” 的背后,是长期的 “改”。
我没有放弃 AI,而是调整了用法:
这样一来,AI 节省的时间,不会在改代码时加倍吐回去。
AI 写代码快,但不是免费的。你省下的打字时间,很可能变成修代码的时间。这笔账,建议每个团队都算清楚。