为什么 AI 写的代码总像实习生?问题其实出在 Prompt

4 阅读4分钟

为什么 AI 写的代码总像实习生?问题其实出在 Prompt

最近我在用 Cursor 写一个 React 项目时,遇到一个很有意思的问题。

同样一个需求,让 AI 写代码时,结果差距非常大。

有时候 AI 写出的代码:

  • 结构清晰
  • 类型完整
  • 组件拆分合理

但有时候生成的代码却像这样:

function Login() {
  return (
    <div>
      <h1>Login</h1>
      <input />
      <input />
      <button>Login</button>
    </div>
  )
}

这种代码的问题很明显:

  • 没有组件结构
  • 没有 TypeScript 类型
  • 没有表单校验
  • 没有状态管理

几乎 无法直接用于真实项目

一开始我以为是 AI 的问题,但后来发现一个关键点:

AI 写代码的质量,其实取决于 Prompt。

在 AI 编程时代,其实可以把 Prompt 理解为:

Prompt = 写给 AI 的需求文档

如果需求写得不清楚,AI 只能“猜”你的需求。

而如果 Prompt 写得像技术需求文档,AI 生成的代码质量会明显提升。

这篇文章我就分享一个核心问题:

开发者应该如何写出高质量 Prompt?


一、为什么简单 Prompt 很容易失败

很多开发者写 Prompt 的方式其实非常简单,比如:

写一个 React 登录页面

这类 Prompt 的问题是:

  • 没有技术栈
  • 没有功能描述
  • 没有实现方式
  • 没有代码要求

对于 AI 来说,这个需求几乎是 完全模糊的

AI 只能生成最简单的实现。

所以结果往往是:

  • demo 级代码
  • 没有工程结构
  • 不可维护

这也是很多人觉得 AI 写代码不靠谱 的原因。


二、高质量 Prompt 的核心结构

在实际开发中,我总结了一套简单的 Prompt 结构。

一个高质量 Prompt 通常包含 5 个要素

背景
技术栈
功能需求
实现方式
代码要求

可以理解为 精简版技术需求文档


三、一个真实 Prompt 优化案例

来看一个简单的例子。

原始 Prompt

写一个 React 登录页面

AI 生成的代码通常只是一个简单表单。


优化后的 Prompt

实现一个登录页面

技术栈:
React + TypeScript + Tailwind CSS

功能:
邮箱 + 密码登录
表单校验
登录按钮 loading 状态

技术实现:
使用 React Hook Form 管理表单
使用 Axios 请求 API

UI:
SaaS 风格
卡片式登录框

代码要求:
组件化
TypeScript 类型完整

当 Prompt 变得更清晰之后,AI 生成的代码通常会包含:

  • 登录组件
  • API 请求
  • 表单校验
  • UI 布局
  • TypeScript 类型

代码质量会明显更接近真实项目。


四、写 Prompt 的三个实用技巧

除了结构化 Prompt,还有几个技巧非常实用。


1 让 AI 扮演专家

在 Prompt 中指定角色,可以提高回答质量。

例如:

你是一名资深前端工程师,请实现以下功能

这样 AI 会倾向于输出:

  • 更规范的代码结构
  • 更合理的实现方式

2 分步骤生成代码

很多人喜欢一次生成所有代码,但这种方式容易生成混乱代码。

更好的方式是 分步骤生成

例如:

第一步:设计组件结构  
第二步:实现 UI  
第三步:添加业务逻辑

这样生成的代码会更加清晰。


3 让 AI 帮你优化代码

AI 不仅可以写代码,也可以 重构代码

例如:

请优化这段代码:

1 提升可读性
2 拆分组件
3 添加 TypeScript 类型

AI 可以自动完成一次简单重构。


五、AI 编程时代的变化

过去开发者的核心能力是:

写代码

而在 AI 编程时代,一个新的能力正在变得越来越重要:

写 Prompt

因为 AI 并不会真正理解需求,它只是根据提示生成内容。

Prompt 越清晰,AI 生成的结果就越好。

所以某种程度上可以说:

Prompt 就是写给 AI 的需求文档。


六、总结

很多人觉得 AI 写代码不稳定,其实问题往往不是 AI,而是 Prompt。

一个高质量 Prompt 通常包含:

背景
技术栈
功能需求
实现方式
代码要求

当 Prompt 足够清晰时,AI 生成的代码质量会明显提升。

在未来的开发流程中,开发者不仅需要会写代码,也需要学会:

如何与 AI 协作。

而 Prompt 工程,可能会成为每个开发者都需要掌握的一项新技能。