AI 让写代码变快了,但真正困难的从来不是写代码。
过去半年,我提交了大约 40 万行代码。准确来说,其中绝大部分代码并不是我手敲出来的,而是 AI Coding 工具完成的。从最开始尝试用 AI 补函数、改 Bug,到现在让 AI 参与完整模块开发,我经历了一个明显变化:AI 确实提升了开发效率,但它并没有让程序员变得轻松。相反,当代码产出的速度提升几倍之后:很多人认为 AI Coding 的核心是 Prompt:有没有万能提示词?怎样一句话生成整个项目?有没有高级技巧?但真正长期使用 AI 写代码之后,我发现:决定 AI Coding 效果的不是 Prompt 写得多漂亮,而是你是否理解 AI 的工作方式。
一、先理解 AI:它不是程序员,而是一台概率机器
帮我实现这个功能。
重新改一下。
几轮下来发现越来越混乱,于是开始怀疑 是不是 AI 还不够聪明?但问题可能出在认知上。LLM 的本质并不是像人一样理解问题,而是在已有上下文基础上预测下一步最可能出现的内容。这也是为什么 AI 有时候表现惊艳,有时候又会犯一些非常基础的错误。它不是不会写代码,而是不知道 你的真实业务背景是什么。二、AI Coding 最大的三个限制
1. AI 没有真正的长期记忆
很多人误以为:和 AI 聊久一点,它就越来越了解我的项目。实际上并不是。AI 不会像工程师一样积累项目经验,它不知道:所以长期有效的信息需要主动沉淀,包括项目开发规范、编译方式、测试要求、常见问题处理流程等。这些内容应该写进项目规则,而不是依赖聊天上下文。2. AI 上下文有限
很多人觉得:给 AI 更多信息,它会更准确。但现实往往相反,上下文太长会导致:所以我的习惯:一个会话只解决一个明确问题。不要把新功能开发、Bug 修复、架构调整、性能优化等全部放在一次聊天里。完成一个任务,就重新开始。这不是浪费上下文,而是在保持 AI 专注。3. AI 会产生错误累积
AI 生成代码本质是一次次概率选择。如果第一步方向偏了,后续代码继续基于错误假设生成;最终可能得到一套完整但错误的实现。所以 AI 最大的问题不是 不会写,而是它会非常快速地写出一个看似合理的错误方案。三、我总结的 5 个 AI Coding 实战方法
方法1:让 AI 只解决一个明确目标
帮我优化一下这个模块。
更好的方式是明确:背景是什么;目标是什么;限制是什么。例如,不要说:把 A 目录文件复制到 B 目录。
A 目录持续产生文件,需要实时同步到 B 目录。不能频繁扫描目录,需要支持服务重启恢复,失败最多重试三次。
方法2:告诉 AI 不能做什么
优秀需求不仅包含 我要什么,还包含 不要什么。例如,开发缓存功能,只说:增加缓存。
AI 可能会:随便选择方案;忽略异常情况;不考虑一致性。更好的方式是明确:缓存哪些数据;过期策略;数据一致性要求;失败处理方式。约束越清晰,AI 的发挥空间越小,但结果通常越好。方法3:复杂任务先拆解,再让 AI 执行
复杂需求最大的困难不是代码量,而是不确定性。比如,增加一个缓存系统。背后包含:缓存什么、为什么缓存、保存多久、如何失效、异常怎么办等。不要直接让 AI 写代码,而是应该人与AI高度协作。此时 AI 才真正发挥优势,它负责:写代码;补测试;重复修改。方法4:从代码 Review 转向风险测试
以前代码少,可以逐行检查;现在AI 一次可能生成几百行甚至几千行代码,你不可能全部 Review,所以重点应该改变,不要问:“代码写得漂亮吗?”
“哪里最容易出问题?”
重点测试:输入异常;外部依赖失败;服务重启;数据不一致;并发场景等。人的价值不再是检查每一行代码,而是找到最危险的位置。方法5:持续复盘,而不是迷信 Prompt
很多 AI 教程喜欢总结 十大 Prompt 技巧,但真正有效的方法来自实践。每次 AI 出错,都问自己:如果一个问题反复出现,记录下来形成项目规则、开发模板、自动化流程。这才是你的 AI 能力。四、AI 时代,程序员真正不可替代的能力是什么?
AI 会越来越擅长:写代码;补测试;重构模块;查找问题。但软件工程真正困难的部分从来不是代码输入,而是理解业务、定义问题、做技术取舍、判断方案风险。未来优秀程序员不一定是代码写得最快的人,而是能够准确告诉 AI 应该解决什么问题的人。五、最后的一点感受
刚开始使用 AI Coding 时,我也焦虑过。看到别人一小时开发一个项目、几个 Prompt 自动生成系统,很容易产生一种感觉:是不是自己已经落后?但真正深入使用后发现,AI 并没有替代工程能力,它只是改变了工程能力的方向。程序员 = 写代码的人
程序员 = 定义问题、设计方案、驾驭 AI 的人
代码会越来越便宜,但判断力不会。所以,与其每天追逐新的工具,不如花更多时间理解业务、提升抽象能力、训练解决复杂问题的能力。AI 会越来越强,但决定结果的永远是使用 AI 的那个人。