"你的 Agent 在写烂代码,这个工具来抓它"
React Doctor 的 README 上有一句很嚣张的话:"Your agent writes bad React. This catches it."
这话不好听,但它戳中了一个 2026 年几乎每个前端开发者都有的痛点。
自从 Cursor、Copilot、Codex 这些 AI 编程工具普及之后,前端代码的生产速度翻了几倍。但速度上去了,质量呢?
一个来自实战的工具
React Doctor 的作者是 Aiden Bai——Million.js 的创始人。这个人不是一般的项目维护者,他是一个对 React 性能优化有着近乎偏执追求的工程师。
Million.js 本身就是一个以"比 React 快 70%"为卖点的虚拟 DOM 替代方案。所以当他说"AI 写的 React 代码有问题"时,你应该认真听。
更值得注意的是这个项目近期的更新频率——2 小时前还在合并 PR,修复误报、改进评分算法。这说明它不是在做一个概念验证,而是在认真做一个可用的工具。
它到底检查什么?
React Doctor 不是一个通用的 linter。它专注的是 AI 生成代码中常见的那些"看起来能跑但其实是坑"的模式:
- 不必要的重渲染:AI 经常生成缺少
memo、useMemo的组件,功能没问题但性能灾难 - 错误的数据获取模式:在 render 里直接调 API、缺少错误处理、没有 loading 状态
- 过度复杂的组件结构:AI 倾向于把逻辑堆在一个组件里而不是拆分
- 违反 React 最佳实践的写法:比如直接修改 state 而不是用 setState
它的检查逻辑不是简单的 AST 匹配,而是结合了语义分析——它能理解"这段代码虽然语法正确,但执行起来会有问题"。
GitHub Action 集成是杀手级功能
React Doctor 最聪明的设计是把它做成了一个 GitHub Action。
你不需要手动运行它——每次 PR 提交时它会自动跑一遍,给你的代码质量打分,列出具体问题。这意味着:
- AI 生成的代码被自动审查,不需要人工逐行检查
- 团队可以设置质量阈值,低于阈值的 PR 自动打回
- 问题会直接显示在 PR 里,开发者可以直接在代码审查界面看到
这个工作流的设计非常贴合实际的团队开发场景。
一个 Leaderboard 引发的竞争
React Doctor 最近还加了一个 Leaderboard 功能——给不同 AI 编程工具的代码质量排名。
这看起来像是个小 feature,但它的意义可能比工具本身还大。因为它创造了一种公开的比较维度:不再是谁的功能多、谁的响应快,而是"谁写的代码质量更好"。
这种竞争维度如果成立,会倒逼 AI 编程工具厂商在代码质量上下功夫,而不只是在功能数量上堆砌。
我的担忧
React Doctor 的思路很好,但有一个根本性的问题:谁来定义"好代码"?
Aiden Bai 对 React 性能的理解无疑是顶尖的,但他的标准不一定适合每个团队、每个项目。有些场景下,可读性比性能重要;有些场景下,开发速度比代码质量重要。
React Doctor 需要避免成为一个"只有一种正确写法"的工具。好在从最近的更新来看,团队在积极降低误报率、接受用户反馈——这是一个好的信号。
如果你在用 AI 工具写 React 代码,React Doctor 值得加到你的 CI 流程里。它不会替代人工 code review,但它能帮你拦住那些"AI 以为没问题但实际上有问题"的代码。