> ## Documentation Index
> Fetch the complete documentation index at: https://aicoding.cscitech.top/llms.txt
> Use this file to discover all available pages before exploring further.

# 从传统编程到 AI Coding

# 从传统编程到 AI Coding

\*\*先想一个问题：\*\*过去开发一个功能时，程序员通常要亲手完成哪些工作？理解需求、设计方案、查文档、写代码、运行测试、定位错误、修改代码——几乎每一步都由人直接操作。AI Coding 出现后，这些步骤并没有消失，但执行方式发生了变化：人开始用自然语言描述目标，让 AI 参与生成、解释、修改和检查代码。

## 传统编程：人直接驱动代码

在传统编程中，开发者需要把需求逐步翻译成计算机可以执行的代码。比如要做一个“待办事项”应用，开发者通常会：

* 分析用户需要添加、完成和删除任务；
* 选择编程语言、框架和数据存储方式；
* 手动编写页面、业务逻辑与测试；
* 根据报错查阅文档、搜索资料并修改代码；
* 反复运行和验证，直到功能符合预期。

这套方式的核心关系是：

**人的想法 → 人的设计 → 人写代码 → 计算机执行 → 人检查结果**

编程语言相当于人与计算机之间的翻译工具。开发者不仅要知道“想做什么”，还必须熟悉语法、API、框架和调试方法，才能把想法准确地变成代码。

## AI Coding：人通过模型和工具驱动代码

AI Coding 在人与代码之间加入了一个可以理解自然语言、阅读上下文并生成代码的模型。开发者可以先说明目标、环境和约束，再让 AI 给出代码初稿、解释现有代码、补充测试或分析错误。

新的协作关系更像这样：

**人的目标与判断 → AI 理解并生成 → 工具执行和反馈 → 人验证与决策 → AI 继续修改**

例如，开发者不一定从空白文件开始逐行编写待办应用，而可以先告诉 AI：

> 使用 HTML、CSS 和 JavaScript 做一个无需后端的待办事项页面。用户可以添加、完成和删除任务，任务保存在浏览器本地；先说明实现方案，再分步骤生成代码。

AI 可以快速给出方案和初稿，但“快速生成”不等于“正确完成”。开发者仍要确认：需求是否被准确理解？代码能否运行？边界情况是否处理？有没有安全或维护问题？

## 一个更贴切的类比：从亲自砌墙到带领施工队

传统编程像工匠亲手砌每一块砖；AI Coding 更像负责人带着一位速度很快、知识面很广，但偶尔会理解错要求的助手施工。负责人不必亲手完成所有细节，却必须做到四件事：

1. 说清楚要建什么；
2. 把大任务拆成可执行的小步骤；
3. 检查每一步是否符合图纸；
4. 发现偏差后及时纠正或回滚。

因此，AI Coding 降低了“写出代码”的门槛，却提高了“定义问题、提供上下文、审查结果和做出判断”的重要性。

## 变化的不是有没有程序员，而是程序员把精力放在哪里

| 传统编程中的主要投入 | AI Coding 中的主要投入 |
| ---------- | ---------------- |
| 记忆语法和 API  | 描述目标、环境与约束       |
| 手写大量样板代码   | 让 AI 生成初稿并进行审查   |
| 自己搜索报错原因   | 与 AI 一起提出并验证假设   |
| 从零编写测试和文档  | 借助 AI 生成，再由人验收   |
| 直接修改每一行代码  | 决定改什么、为什么改、是否接受  |

这里有一个关键认识：\*\*AI 负责加速“产生候选答案”，人负责判断“哪个答案值得采用”。\*\*如果开发者只会让 AI 生成，却不会验证，错误也会被更快地放大。

## 小练习：判断谁应该负责

假设你要用 AI 做一个登录功能。下面哪些工作可以交给 AI 起草，哪些必须由人最终负责？先独立判断，再对照参考答案。

1. 生成登录表单代码；
2. 选择采用短信、密码还是第三方登录；
3. 检查密码是否被安全存储；
4. 编写常见输入的测试用例；
5. 判断功能是否满足真实用户需求。

### 参考答案

| 工作             | 谁负责            | 为什么                                              |
| -------------- | -------------- | ------------------------------------------------ |
| 生成登录表单代码       | AI 起草，人审查      | AI 擅长快速生成常见界面，但人要检查字段、交互、可访问性以及是否符合项目规范。         |
| 选择短信、密码还是第三方登录 | 人最终决定，AI 可提供建议 | 这涉及用户群体、成本、安全性、隐私和业务目标，AI 不掌握全部真实约束。             |
| 检查密码是否被安全存储    | 人最终负责，AI 可辅助审查 | AI 可以列出风险和建议，但安全责任不能交给模型；必须确认密码经过可靠哈希处理，且没有明文保存。 |
| 编写常见输入的测试用例    | AI 起草，人补充并运行   | AI 能快速生成正常、异常和边界用例，但人要确认测试覆盖真实需求，并实际执行测试。        |
| 判断功能是否满足真实用户需求 | 人最终负责          | 是否“有用、好用、符合预期”需要结合真实用户反馈和业务目标判断，AI 只能提供参考。       |

\*\*一句话归纳：\*\*代码、测试和说明文档可以让 AI 先起草；需求、技术取舍、安全验收和最终发布必须由人负责。

## 本节结论

从传统编程到 AI Coding，不是从“人写代码”简单变成“AI 写代码”，而是从单人直接操作转向人、模型、开发工具与代码共同组成的协作闭环。开发者的核心价值也从单纯的代码生产，进一步转向目标定义、任务拆解、上下文组织、结果验证与风险控制。
