Skip to main content

AI Coding 如何改变开发者的工作

AI Coding 带来的变化,不只是“写代码更快”,而是开发者的工作重心正在从亲手生产每一行代码,转向定义问题、组织上下文、指挥工具、验证结果和控制风险 可以先记住一句话:开发者不再只是代码的编写者,也逐渐成为 AI 协作流程的设计者和验收者。

先看一个工作方式的变化

假设要给一个待办应用增加搜索功能。 传统方式通常是:
  1. 阅读现有代码;
  2. 设计搜索逻辑;
  3. 手写输入框、过滤函数和样式;
  4. 查资料解决报错;
  5. 编写测试并修改问题。
使用 AI Coding 后,开发者可能会:
  1. 先说明功能目标、技术栈和限制;
  2. 让 AI 阅读相关文件并提出修改计划;
  3. 检查计划是否遗漏空关键词、大小写和性能问题;
  4. 允许工具做最小范围的修改;
  5. 查看代码差异并运行测试;
  6. 根据真实结果继续要求 AI 修正。
任务没有消失,但人的投入位置改变了:机械编码减少,沟通、拆解、审查和验证增加。

变化一:从“写实现”转向“定义问题”

过去,开发者常把大量时间花在如何把方案写成代码;现在,AI 可以快速生成实现初稿,问题是否定义清楚反而更关键。 一个模糊请求是:
优化一下搜索功能。
更有效的任务定义是:
当前搜索只匹配任务标题。请增加标题和描述的模糊搜索,忽略大小写,空关键词时显示全部任务;不要新增依赖,并保持现有接口不变。先说明修改计划和测试场景,不要立即改代码。
AI 时代,清晰描述目标、边界和验收标准,本身就是开发能力的一部分。

变化二:从“大脑里保存上下文”转向“显式组织上下文”

开发者熟悉项目时,很多信息存在脑中:为什么采用某个架构、哪些文件不能改、团队偏好什么风格。AI 不知道这些隐含背景,除非人把它们写出来。 因此,开发工作中会更重视:
  • 清晰的 README 和架构说明;
  • 项目规则文件与编码规范;
  • 完整的接口、数据结构和示例;
  • 可复现的错误报告;
  • 明确的任务说明与验收标准;
  • 及时更新的测试和文档。
过去文档常被视为附属品;在 AI Coding 中,优质文档也成为模型能够正确工作的上下文基础设施。

变化三:从“一次完成”转向“小步生成、持续验证”

AI 可以一次生成大量代码,但一次改得越多,越难判断问题来自哪里。可靠的工作方式更强调:
  1. 先让 AI 说明计划;
  2. 把大任务拆成独立的小步骤;
  3. 每次只修改有限范围;
  4. 修改后立即查看差异;
  5. 运行对应测试;
  6. 通过后再进入下一步。
这并不是让开发变慢,而是防止 AI 用很快的速度扩大错误。

变化四:代码审查变得比代码生成更重要

当代码生成成本下降后,判断代码质量的能力会变得更加稀缺。 开发者需要重点检查:
  • 逻辑是否真正满足需求;
  • 边界情况是否处理;
  • 是否使用不存在或过时的 API;
  • 是否引入安全、隐私和权限风险;
  • 是否无意中修改了无关文件;
  • 是否增加不必要的抽象和依赖;
  • 测试是否有效,而不只是“数量很多”;
  • 代码是否符合项目现有架构和风格。
可以把 AI 生成的代码视为“速度很快的实习生提交的 PR”:值得利用,但必须 Review。

变化五:调试从“寻找答案”转向“管理假设”

AI 可以根据报错快速提出多个可能原因,但这些原因只是待验证的假设。 开发者的调试工作会更像侦探:
  1. 明确期望结果和实际结果;
  2. 收集完整报错、日志、输入和相关代码;
  3. 让 AI 列出有依据的可能原因;
  4. 设计最小实验逐个排除;
  5. 确认根因后再做最小修复;
  6. 运行回归测试并复盘。
真正重要的不是 AI 能列出多少答案,而是开发者能否用证据判断哪个答案成立。

变化六:开发者会同时管理更多“自动化执行”

AI 编辑器和终端 Agent 可以跨文件修改代码、运行测试、生成文档,甚至连续执行多个步骤。开发者的角色因此增加了类似“任务调度者”的职责:
  • 决定哪些任务可以交给 AI;
  • 限制它能访问的文件和工具;
  • 审核执行计划;
  • 监控中间结果;
  • 在异常时停止、回滚或换方案;
  • 协调多个 AI 任务之间的依赖。
自主程度越高,权限控制和版本管理越重要。

变化七:基础能力不会消失,但使用方式会改变

AI 能生成代码,不代表编程基础不再重要。开发者仍需要理解:
  • 数据如何流动;
  • 函数和模块如何协作;
  • 错误信息意味着什么;
  • 测试能证明什么、不能证明什么;
  • 性能、安全和维护性的基本原则;
  • 如何使用版本控制和回滚。
区别在于,开发者不一定需要记住所有语法细节,却必须具备足够的知识来判断 AI 的方案是否合理。 这就像使用导航不会让方向感毫无价值:你可以不记住每条路,但要能发现导航是否把你带向明显错误的方向。

变化八:个人与团队的工作流程都会被重新设计

对个人开发者

AI 可以减少查语法、写样板代码和整理文档的时间,让个人有能力尝试更完整的项目。但个人也要建立自己的纪律:
  • 修改前提交版本;
  • 一次只做一个明确任务;
  • 每次查看代码差异;
  • 运行测试而不是只看 AI 回复;
  • 不把密钥和隐私数据交给模型;
  • 定期总结哪些任务真的节省了时间。

对团队

团队需要明确:
  • 哪些代码允许使用 AI 生成;
  • 哪些数据不能发送给外部模型;
  • AI 生成代码采用什么评审标准;
  • 规则和架构如何沉淀为机器可读上下文;
  • 高风险修改由谁审批;
  • 如何记录 AI 引入的依赖和决策。
AI Coding 不只是个人工具升级,也会推动团队规范、文档和评审流程升级。

传统开发者与 AI 协作开发者的工作重心

这并不意味着左侧能力不再需要,而是右侧能力的重要性显著提高。

开发者需要强化的六项能力

1. 需求表达

把模糊想法转化成具有目标、输入、输出、限制和验收标准的任务。

2. 任务拆解

把复杂项目拆成 AI 一次能理解、执行和验证的小步骤。

3. 上下文工程

选择真正相关的代码、文档、日志和规则,并以清晰结构提供给 AI。

4. 代码与测试审查

识别幻觉、边界问题、安全风险和无效测试,而不是只看代码是否整齐。

5. 工具与权限管理

理解 AI 工具可以读取什么、修改什么、执行什么,并为高风险操作设置确认和回滚机制。

6. 技术判断与取舍

在多个可行方案中,根据业务、成本、维护性和风险做决定。

一个需要避免的误区:产出更多不等于效率更高

AI 能在几分钟内生成大量代码,但如果这些代码需要数小时审查、修复和重写,总体效率可能反而下降。 真正的效率应该综合考虑:
  • 完成任务用了多长时间;
  • 修改后出现多少缺陷;
  • 是否增加维护成本;
  • 测试和文档是否同步;
  • 开发者是否真正理解关键逻辑;
  • 后续是否容易修改和回滚。
AI Coding 的目标不是“生成最多代码”,而是“用更低的总成本交付可靠结果”。

小练习:开发者的工作重点变了吗?

假设 AI 在两分钟内生成了一个文件上传功能。页面可以运行,AI 也回复“功能已完成”。作为开发者,接下来应该做什么? 请从下面选出必要步骤:
  1. 因为可以运行,立即发布;
  2. 检查文件大小和类型限制;
  3. 检查文件名、路径和恶意内容风险;
  4. 查看 AI 修改了哪些文件和依赖;
  5. 测试上传失败、网络中断和重复文件;
  6. 确认隐私数据的存储与访问规则;
  7. 只让 AI 自己审查,人工无需再看。

参考答案

必要步骤是 2、3、4、5、6 这个练习体现了开发者工作重心的变化:AI 缩短了初稿生成时间,但开发者需要把更多注意力放在边界、安全、证据和最终责任上。

本节结论

AI Coding 不会简单地让开发者“少工作”,而是重新分配工作:重复编码和资料整理可能减少,目标定义、上下文组织、任务拆解、结果审查、风险控制与工具管理会增加。 未来有竞争力的开发者,不一定是手写代码速度最快的人,而是能够清楚定义问题、有效指挥 AI、识别错误、验证结果,并对最终软件负责的人。