【导读】
你以为 AI 是你的“外挂”,其实它可能是你项目中最大的“熵增”源头。今天我们不聊那些“一键生成官网”的营销噱头,只谈在 React 这个深水区,AI 到底是在帮倒忙还是在救命。
深度洞察:繁华表象下的“玻璃天花板”
最近,科技圈似乎陷入了一种集体的“代码多巴胺”狂欢。无论是 Cursor 的爆火,还是 Claude 3.5 Sonnet 在编程榜单上的霸榜,仿佛只要敲几个 Prompt,复杂的 React 应用就能像自动贩卖机里的可乐一样掉出来。
但让我们冷静下来,看看数据背后的真相。
根据最新的 SWE-Bench Verified 测试,AI 在解决明确、独立的代码问题上,成功率确实已经飙升到了 70% 以上。这听起来很美,对吧?但这就像是说一个刚毕业的实习生能完美地写出“Hello World”和漂亮的登录页面。
然而,一旦进入 SWE-Bench Pro 的测试集——也就是那些涉及复杂业务逻辑、跨文件引用和架构决策的真实场景,AI 的表现瞬间跌回了 20%-43% 的区间。
这说明了什么?
目前的 AI,本质上是一个“顶级的战术执行者,却是蹩脚的战略家”。
在 React 开发中,它能用 Tailwind CSS 把界面画得流光溢彩,能秒写出标准的 Functional Component 模版。但在数据流向的设计上,它往往缺乏全局观。它看不见你项目里那个两年前写的、像迷宫一样的 Context 结构,它更不懂为什么你的团队约定了要用 Zustand 而不是 Redux。
它在局部不仅是完美的,甚至是“过度完美”的;但在整体上,它正在不知不觉地往你的代码库里灌注大量的“胶水代码”。这些代码现在能跑,但三个月后,当你要重构某个组件时,你会发现自己仿佛置身于一片没有地基的烂尾楼中。
独立视角:被忽视的 useEffect 陷阱与“平庸的恶”
我想聊一个很少被提及,但极客们心照不宣的细节:AI 正在制造大量的“React 模版式垃圾”。
如果你仔细审查过 GPT-4o 或 Claude 生成的 React 代码,你会发现它们对 useEffect 有着一种近乎病态的迷恋。
AI 的逻辑是线性的:“用户想要在这个数据变化时更新那个状态?好,加个 Effect。” 于是,我们看到了无数本该用 useMemo 计算的派生状态,或者干脆可以在渲染逻辑中直接处理的数据,被硬生生塞进了 useEffect 里。
这就是 AI 的“平庸之恶”。
它写的代码不报错,甚至在 Demo 阶段跑得飞快。但它忽略了 React 的并发模式(Concurrent Mode),忽略了不必要的重渲染(Re-renders)。它就像一个只会拼乐高的孩子,为了搭得高,不管是红砖还是蓝砖,只要能卡上去就往上堆。
更有趣的是目前的模型之争。虽然大家都在吹捧 GPT-4o 的全能,但在纯粹的代码逻辑严谨性上,Claude 3.5 Sonnet 似乎正在通过“更听话”来赢得开发者的心。为什么?因为 GPT 偶尔会自作聪明地给你加一些你不需要的“优化”,而 Claude 更像是一个严谨的德国工程师——你让它往东,它绝不往西。
但在我看来,这种差异只是五十步笑百步。如果你没有能力一眼看穿它生成的 useEffect 依赖项里少写了哪个变量,那么无论你用哪个模型,你实际上都已经交出了代码的“控制权”。
行业对比:从“复制粘贴”到“智能生成的诅咒”
让我们把视线拉宽一点。
回想一下十年前的 jQuery 时代,或者是 WordPress 盛行的日子。那时候,行业里充斥着大量的“复制粘贴工程师”和“插件拼装师”。他们不求甚解,代码能跑就行。
现在的 AI 编程热潮,某种意义上是历史的押韵,但节奏更快,风险更隐蔽。
- 传统外包/低代码平台: 它们生成的代码通常丑陋且难以维护,开发者一看就知道是机器生成的,心里有数,改起来也知道从何下手(或者干脆重写)。
- 现代 AI 辅助开发: 它生成的代码太像人写的了,甚至像一个资深工程师写的。它有注释,有解构赋值,有 TypeScript 类型定义。这种“拟态”是最危险的。 它会让你放松警惕,让你误以为这段逻辑是无懈可击的。
这就好比某些快时尚品牌,衣服样子极其时髦,但你穿了三次之后,线头开了,版型塌了。现在的 React 生态圈,正在被这种“快时尚代码”填满。如果不加控制,未来的维护成本将是指数级的。
AI 时代的生存法则:做“牧羊人”,而不是“打字员”
最后,作为湍流,我想给所有 React 开发者——以及试图用 AI 替代开发者的老板们——一个不那么中听,但或许能救命的建议:
请把 AI 当作你的“恶意竞争对手”,而不是“全能保姆”。
当你让 AI 生成代码时,请假设它是你那个想要篡位、故意在代码里埋坑的“死对头”写的。
- 审查逻辑,而不是语法: 别再感叹它类型定义写得多么准确了,去盯着它的依赖数组,去盯着它的状态提升逻辑。那才是 bug 的栖息地。
- 强制“降维”重构: 如果 AI 给你写了一个 200 行的组件,请强迫它(或者你自己)将其拆解为 5 个 40 行的纯函数组件。AI 善于处理小段逻辑,上下文越长,它越容易“幻觉”。
- 不要让 AI 设计架构: 这是底线。文件夹结构、状态管理库的选择、路由的鉴权逻辑,这些必须出自人类之手。让 AI 负责填肉,但骨架必须是你搭建的。
在这个时代,写出代码不再是本事,拒绝什么样的代码,才是一个工程师真正的身价所在。
【结语】
AI 不会取代 React 开发者,但“会 Review AI 代码”的开发者,绝对会取代“只会 Prompt AI 代码”的开发者。别让你的 IDE 变成了赌桌,每一次 Accept 都是在赌运气。保持清醒,保持对底层逻辑的敬畏,这才是极客的生存之道。
