AI 编程始终需要人类迭代 | AI生成和翻译

Home 2026.03

问题: 为什么在使用像 Copilot 或 Claude Code 这样的工具时,人们仍然需要手动干预,特别是当他们往往事先不知道确切的期望结果,而只是在构建过程中发现可接受的结果时?

回答:

是的,你的观察本质上是正确的。使用 AI 编码助手如 GitHub Copilot 或 Claude Code 时,手动干预仍然必要的一个主要原因是,软件开发常常在过程中发现需求,而不是事先完美定义它们

这一现象体现在软件工程的几个重要方面。

1. 需求往往未知或不完整

在许多现实世界的项目中,开发者无法在开始时完全描述他们想要什么。相反,他们只有粗略的意图

例如:

这些目标是模糊且不断演变的。确切的实现只有在实验后才变得清晰。

这有时被称为 emergent design,其中最终设计通过迭代逐渐浮现。

2. 验收标准通过构建过程发现

当开发者构建功能时,他们常常发现之前不明显的约束:

例如,你最初可能想要一个复杂的架构,但实现后你意识到:

此时,你会细化需求。这就是为什么编码和思考是紧密耦合的活动

3. 许多质量难以用自然语言描述

软件质量的某些方面难以事先指定,例如:

这些质量往往只有开发者看到代码或运行系统时才能认识到

因此,即使 AI 生成代码,人类仍需要评估:

4. 软件开发是一种迭代探索

现代开发方法如 Agile 假设知识在开发过程中浮现

典型工作流程:

  1. 想法
  2. 原型
  3. 观察限制
  4. 细化设计
  5. 重建
  6. 重复

AI 工具加速了 2–5 步,但它们无法消除探索过程

5. 人类提供判断和上下文

AI 可以生成解决方案,但人类仍提供:

例如,AI 可能生成可工作的代码,但开发者可能决定:

这些判断需要经验和上下文意识,AI 目前无法完全复制。

6. 编程往往是发现问题过程

软件工程中的一个著名观点是:

“We don’t really understand the problem until we try to solve it.”

开发者往往只有在编写和测试代码后才理解:

结论

使用 AI 编码工具时,手动干预仍然必不可少,因为:

  1. 需求在开始时往往不清晰。
  2. 可接受结果通过实验发现。
  3. 许多软件质量难以明确描述。
  4. 开发是一种迭代探索过程。
  5. 人类判断和系统理解仍然必要。

像 GitHub Copilot 和 Claude Code 这样的 AI 助手大大加速了编码,但它们无法取代软件设计的探索本质。相反,它们更像是极快的协作者,仍需要人类的指导和评估。


Back Donate