我招了一个“Prompt工程师”来写前端,结果项目差点崩了

上个月团队扩招,我面试了一个特别"潮"的候选人。他说自己不用手写代码,全靠AI生成,自称"Prompt工程师"。我觉得挺新鲜,就招了进来。结果一个月后,他负责的模块上线,三天内爆出十几个bug。我打开他的代码,愣住了:一个函数两百行,重复逻辑遍地,没有错误处理,没有类型定义。效率确实高,一天产出是我两倍。但修他的代码,花了我三倍的时间。

一、"Prompt工程师"的诞生

今年招聘季,我收到一份简历,技能栏写着"AI辅助编程(Cursor / Copilot / Claude Code)"。面试时他演示了一段:用Cursor生成一个完整的React组件,带样式、带状态、带API调用,前后不到一分钟。我问:"如果AI生成的代码有bug,你怎么排查?"他说:"再让AI修啊,多轮对话总能搞定。"

我当时觉得,这代表未来。于是给了他offer,让他负责一个内部中后台模块。

二、效率惊人,但代码质量惊人地差

他确实快。别人一天写一个页面,他能写三个。但两周后,我去review他的代码时,发现问题了。

1. 重复代码堆砌

同一个工具函数,出现在五个文件里,每个实现略有不同。AI每次生成时没有"复用"的意识,只解决当下。

2. 没有错误处理

所有API调用都没有.catch(),没有try...catch。问为什么不处理,他说:"AI没写,我忘了补。"

3. 类型形同虚设

虽然用了TypeScript,但到处都是any。AI不知道业务实体的具体类型,就给了any,他也懒得改。

4. 组件过度设计

一个简单的列表页,AI生成了6个自定义Hook,4个context,拆成了20个文件。改一个功能要跨十几个文件。

三、上线后,炸了

模块上线后,用户反馈:页面白屏、数据不更新、按钮点了没反应。我们紧急回滚,花了三天排查修复。

  • 白屏是因为API返回空数据时,AI没判断data.list是否存在,直接.map()
  • 数据不更新是因为useEffect依赖数组写错了,AI用了[]但内部引用了外部变量。
  • 按钮没反应是因为事件处理函数里抛了异常,没捕获,导致React组件卸载。

我问他:"这些你都没测吗?"他说:"AI生成的代码,我以为没问题。"

四、反思:Prompt工程师不等于合格工程师

这件事让我重新思考:AI编程时代,我们需要什么样的人?

AI能写代码,但不能写好的代码。 好代码的标准:可读、可维护、健壮、高效。这些需要工程师自己来把控。

Prompt工程师的能力是"让AI干活",但合格工程师的能力是"让AI干正确的活,并且能兜底"。如果只会写prompt,不懂边界、不懂异常、不懂架构,AI写的代码就是定时炸弹。

后来我把他的模块全部重写了,并给团队定了一条新规:AI生成的代码,作者必须逐行review并自测,提交PR时附上AI的原始提示词和修改说明

五、最后

我不会因为这个失败的案例就不再招"Prompt工程师",但我会在面试里加一道题:"给你一个AI生成的烂代码,请你指出问题并修复。" 能答上来的,才是真正的人才。

相关推荐
cyadyx38 分钟前
Vite 比 Webpack 构建效率更高
前端·webpack·node.js·vite
mCell2 小时前
AI 时代 SVG 画图的潜力
前端·agent·svg
我命由我123458 小时前
CesiumJS 笔记 - 获取容器中心点、Cartesian3 clone 方法、修改 Cartesian3 对象的高度
前端·javascript·css·前端框架·html·html5·js
Hopebearer_9 小时前
页面突然只剩 DOM?一次静态资源版本错配排查
前端·部署
抱抱宝9 小时前
Agent-study项目教程(03):手写 Mini-ReAct Agent(不依赖框架)
javascript·人工智能·gpt·react.js·prompt·agent
东风破_9 小时前
ESLint 是什么?为什么你的项目需要它?
前端·后端·代码规范
用户938515635079 小时前
Next.js 笔记系统(二):Redis 数据服务与侧边栏组件拆分实战
javascript·全栈
圣殿骑士-Khtangc11 小时前
Go字符串高效拼接性能对比与底层原理分析
服务器·前端·golang
ShineWinsu11 小时前
对于C++:C++11中lambda、function、bind的解析
c++·面试·笔试·开发·lambda·bind·function
码匠许师傅11 小时前
【C++ 面试真题】聊聊 C++ 的拷贝构造与拷贝赋值
java·c++·面试