背景
AI编程已经深入人心,无论是cursor还是trae都让编程看起来非常非常简单,编程全民化的时代看起来已经到来了。
我身边有两个完全不会编程的朋友,最近都不约而同地开始使用AI产品实现自己的idea。
看着他们实现自己的创意过程,跟他们不断地交流,并我加入一些自己的思考,最后形成了这个文章。
AI编程的两种方式
根据我观察下来,AI编程主要分为两种方式,创造和迭代。
创造一个Demo
AI最擅长的是创造第一个demo,当你有一个原型想要实现,或者你想验证一个想法是否可行的时候,把你的想法告诉AI,让AI为你来创造一个可运行的demo效果是非常非常令人惊讶的。
Bolt,v0还有一些其他的号称能截图来生成代码的AI,都可以做到这一点。
迭代你的项目
但是程序员的日常工作就是迭代自己手头的项目。通常来说越有价值的项目,越有迭代的可能。一个一次性创造完就不再更新的项目,要么是需求非常简单,要么是使用场景不负责,要么是运营者不上心。所以,以我为代表的老派程序员更多的是使用cursor或者类似的工具来迭代自己的老项目。
AI编程中的知识悖论
接下来我要写的就是我使用AI这一年所发现的非常反直觉的一件事情。
AI工具对于有经验的程序员的帮助要远远大于新手。
这个看起来很奇怪,不是说AI工具让所有人都可以编程了嘛。
事实上AI在我眼里更像是一个队伍里非常非常热情而不知疲倦的实习生。他们啥都敢写,啥都能写,写的特别多,但是从来不确定自己是否跑在正确的路上。你自己懂的越多,就能更好的利用他们。
我如何使用AI工具
- 迅速完成一个原型,验证我的想法是否可行。
- 给出AI明确的指令,让它完成一个非常小的任务。
- 把自己想要学习的东西告诉AI,让AI给我一个答案,并根据自己的经验判断这个答案是否可靠。
- 完成一些文档和注释工作。
我的产品朋友如何使用AI
- 模糊的提出自己的需求,并接受AI生成的所有代码。
- 忽略AI生成的代码中的安全和性能问题。
- 在尝试新增功能时,跟AI反复描述自己的需求,期待AI某一次生成的代码可以跟自己的预期相符。
- 出现Bug尝试问AI为何出现问题。随着Bug的复杂化,整个项目越来越失去鲁棒性。
AI编程的打地鼠游戏
我有一次远程会议观察了我的产品朋友如何使用AI编码,我没有发表任何意见,只是静静的看着他在玩一个AI编程的打地鼠游戏。
- 他试图修复一个小 bug。
- AI 提出一个看起来合理的修改建议。
- 这个修复导致了其他问题。
- 他让 AI 修复新的问题。
- 结果又引入了两个新问题。
- 然后再重复这个过程。
这个循环对非工程师来说尤其痛苦,因为他们缺乏理解问题实质的思维模型。当有经验的开发者遇到 Bug 时,他们可以凭借多年的模式识别经验来推理出可能的原因和解决方案。而如果没有这样的背景,基本上非工程师是在和自己不太理解的代码玩“打地鼠”的游戏。
80%诅咒
我总结的结果是非工程师在使用AI编程时常常会遇到令人沮丧的瓶颈。他们通常能在令人惊讶的短时间内完成 80% 的工作,但最后的 20% 却变成了一个收益递减的拉锯战。
如果把非工程师换成初级工程师。这个比例可以提高到95%。
那么如何解决这个问题呢。
我认为主要为两点:
- 这个项目不重要,它只关注前面80%的工作,不需要长尾投入,尽情的使用AI吧。它成倍的增加你的效率。
- 把AI当成一个学习工具,而不是编程工具。
未来
80%这个比例随着工具越来越强,会越来越高,有一天如果能达到99%,那么就会大力飞砖,不需要学习了。
我的AI工具使用个人经验
以下部分是我口语化的描述之后的AI优化版。先说结果目前我自己正在开发的项目比之前的质量更高,主要是ai用好了之后写出来的代码更清晰易懂,其次用这种方式对单个功能可以反复尝试不同的设计方案,找到最优设计。
总结如下
一、项目搭建与迭代策略
- 先试水再成形:初期通过实验项目探索 AI 使用效果,积累经验后再正式搭建项目。
- 结构设计需提前规划:正式开始时要一次性设计好项目结构和各功能模块,避免中途大改。
- 目录和模块清晰划分:在文件目录、代码结构上尽量做到一开始就整洁规范,减少后期调整成本。
二、代码质量与审查
- AI 生成代码需全面 Review:AI 生成的代码大多逻辑可通,但常有“绕远路”或使用不合适方法的情况。
- Review 有助于理解与重构:通过人工审查代码,能提升对整体架构的理解,必要时可重写 Prompt 或手动修改。
- 对于不满意的结果,要么重写 Prompt,要么自己重构,避免陷入无效修补的死循环。
三、控制开发粒度
- 每次开发尽量小步快跑:由于需要代码审查,建议每次只让 AI 开发一个小而清晰的功能。
- AI 生成逻辑清晰,适合模块化开发:AI 代码条理清晰,适合拆分模块逐步构建,提高可维护性。
四、复杂逻辑与 Bug 处理策略
复杂逻辑建议人机协作:
- 先让 AI 搭建初步框架(约可达 80% 正确),
- 难点或核心逻辑由人工主导修改,避免 AI 抓不到重点。
复杂 bug 的处理上限:对话三轮:
- 遇到 bug,最多让 AI 尝试三轮;
- 若仍未解决,及时人工介入,避免 AI 无效修改导致代码混乱。