我投入了大量时间研究AI编程,在耗费数百小时后,终于摸索出了一套能稳定获得优质结果的方法。今天,我想把这些技巧毫无保留地分享给你,希望能帮你避开我踩过的坑,不用再浪费宝贵时间,也能像我一样从AI编程中获益。毕竟很多人都反馈,用AI编程时好时坏,而我在长时间深耕后,总算摸清了其中的门道。尽管我仍在持续学习这个工具,但也迫不及待想把现阶段的心得分享给大家。
技巧一:先学会编程,再用AI提效
这是一个再明显不过的建议,甚至有些“痛彻心扉的显而易见”,但我必须强调,因为这个道理真的有必要被反复提及。如果你想让AI在编程中发挥作用,前提是你自己得懂编程。这不是什么高深的科学,也没有争议,只是客观事实。
就目前而言,AI是一个“能力放大器”,哪怕现阶段放大的倍数不算大,但它的核心作用依然是放大你已有的知识储备。如果你本身没有编程思维和基础,就别指望能把思考能力外包给AI——没有自己的核心认知,AI也无法凭空创造价值。
技巧二:提示词要尽可能具体,越详细越精准
我发现,大多数人给AI的提示词都不够具体,这也是很多人得到糟糕结果的重要原因。仔细想想,程序员本就不擅长沟通表达,出现这种情况也在意料之中。但这也意味着,你必须开始提升沟通能力了,因为AI的输出质量,完全取决于你提供的上下文信息。
为了验证这个观点,我专门做了一个实验:用JetBrains的AI助手Juny,分三次让它搭建谷歌文档克隆版,每次提供的信息详细程度递增,看看结果会有什么不同。之所以选择Juny,是因为它有完善的防护机制,能避免用户给出过于模糊的提示。
等级一:模糊到极致的提示词
只给一句“搭建谷歌文档”,没有任何额外信息。如果AI仅凭这句话就能做出合格的版本,我会既震惊又恐慌——这意味着程序员可能被彻底取代。但现实是,它根本做不到。所以,永远不要用这种模糊的方式提示AI,毫无意义。
等级二:普通用户的提示方式
补充了一些细节,但没有技术层面的信息。这是大多数人使用AI的常态,甚至很多人给出的信息比这还要少,基本介于等级一和等级二之间。
等级三:理想的提示方式
如果你想认真用AI编程,或者想让AI的表现更出色,这才是正确的提示方式,也是结合AI公司最佳实践总结出的方法。我会提供完整的技术细节、明确的技术栈、功能实现逻辑、终端命令,这些只有程序员才懂的专业信息;还会附上文档、设计截图(直观展示比文字描述更高效),以及可参考的链接。
当然,这样的提示词仍有优化空间,但已经远优于前两种。很多人会问:“为什么要用AI,直接谷歌搜索5秒不就有答案了?”其实我一直觉得,两者结合才是最优解——先找到需要的资源和解决方案,再交给AI处理。现在很多AI助手都能访问网页,不少公司还推出了专为AI优化的LLM.ext文档,让AI能直接参考这些资料写代码,省去手动输入的麻烦,对懒人来说格外友好。
还有一个懒人小技巧:先写一个包含所有技术信息的简单提示词,再让AI按照LLM最佳实践优化提示词,AI会自动丰富细节,让输出结果更优质。
我们再看看三个等级的实验结果:
- 等级一:Juny直接要求补充更多信息,没有输出任何代码。这一点让我很惊喜,就像真正的开发者面对模糊需求时的反应,而大多数AI工具会胡乱猜测并输出一堆无用代码。JetBrains的这个防护设计,让Juny比多数AI工具更靠谱。如果你习惯给出模糊提示,用Juny能倒逼你优化沟通方式,总比得到一堆垃圾代码要好。
- 等级二:Juny开始搭建项目,制定了计划并搭建了应用框架,但结果不尽如人意——有报错、没有样式,甚至一开始无法运行,界面杂乱无章。我花了不少精力才修复好,但修复后发现,它其实实现了我要求的大部分功能,只是代码质量堪忧。问题不在于Juny,而是我没有提供足够的技术上下文,导致它只能猜测技术实现、技术栈、websocket处理方式,也无法进行样式设计。当AI需要猜测架构时,很容易输出“表面好看、实则漏洞百出”的“鱼目混珠代码”。
- 等级三:项目首次运行就成功,没有报错,所有功能都能正常使用,样式也更美观。虽然不算完美,但整体效果远超前两个等级,代码质量也很高——因为我提供了自己写代码时会参考的所有文档和资源,AI输出的代码和我手动写的几乎一致。
这也说明,AI是否好用,关键可能不在工具本身,而在于你能否清晰、精准地传达需求。即便提示词足够详细,Juny也无法做到完美,除了细节可以进一步补充,还有一个重要原因:我让它一次性处理的任务太复杂了。
技巧三:拆解复杂任务,越小的任务AI表现越好
很多人都说,AI擅长处理小任务,对复杂大任务表现不佳。那我们不妨利用这个特点,把大任务拆解成一个个小任务。如果你无法拆解,说明你还没有真正理解问题本身——这不是AI专属技巧,而是基础的工程思维,早在AI出现之前,规划方案、拆解问题、逐步编码就是解决问题的核心逻辑,也就是所谓的问题解决能力和批判性思维。
唯一的区别是,现在你可以选择自己写代码,也可以让AI代劳。我个人比较懒,更倾向于让AI写代码,我只负责梳理解决方案,不用手动敲字。当然,如果AI代码出错,我会手动修正。按照这个流程操作,你会自然形成详细的提示词,AI的表现也会更出色。
可能有人会说:“我以为AI能让工作更轻松,不想自己思考解决方案,AI应该包办一切。”我理解这种想法,但现阶段的AI还做不到这一点。我们要立足当下,让工具在现有阶段发挥最大价值,而不是空想未来。目前,绝对不要让AI替你思考,我可以接受让AI帮你敲代码,但绝不建议让AI替你做决策——一旦你把思考权交给AI,你就失去了自身的价值,无法发挥自己的专业能力,存在的意义也会大打折扣。
技巧四:明确“禁止项”,大幅减少无效输出
每个用AI编程的人,迟早都会遇到输出垃圾代码的情况。好消息是,除了用详细提示词,还有一个方法能有效减少这种情况,那就是明确告诉AI“不要做什么”。
你可以直接套用这个实用模式:
- 任务描述:尽可能详细地说明需求;
- 背景信息:附上相关文件、文档、图片等参考资料;
- 禁止项:明确列出AI不能触碰、不能修改的内容,以及仅允许修改的部分。
我用这个模式给Juny下达指令,让它给谷歌文档克隆版添加评论功能——点击评论按钮打开面板,选中文本后点击添加评论,文本会高亮并可输入评论。结果非常理想,AI精准实现了所有需求,短短几分钟的提示,比我手动写代码快得多。对我来说,花10分钟梳理问题、写提示词,远胜于花30分钟到1小时手动编码,这只是个人偏好,毕竟我比较懒。
技巧五:创建专属规则文件,让AI“记住”项目信息
还有一个减少AI错误的方法,就是让AI“记住”项目信息。对编程工具来说,你可以创建markdown文件,比如用Juny时,创建guidelines.md或agent.mmd文件。这个文件要包含所有项目核心信息:项目简介、技术栈、重要命令、工作流程、项目专属细节等。
你可以手动创建,也可以让AI自动生成——它会分析代码库,梳理项目概况并写入文件。如果不想自己写,也可以找网上的模板,根据自己的技术栈修改后使用;针对特定技术,还可以创建单独的规则文件。很多工具厂商也提供现成的规则模板,直接复制粘贴到项目中即可,对懒人来说非常友好。
技巧六:巧用MCP工具,拓展AI能力边界
MCP(模型上下文协议)工具能极大拓展AI的能力,而且使用起来非常简单,只需在设置的MCP选项卡中复制粘贴信息即可。结合我的前端开发场景,我常用的MCP工具有三个:
- Context 7:能让AI自动获取文档,不用反复复制粘贴相同文档,AI可按需调取;
- Next.js开发者工具MCP:为AI提供Next.js应用的构建错误、项目状态、页面元数据、开发日志等信息,助力项目开发;
- Chrome开发者工具MCP:让AI访问Chrome开发者工具,查看布局偏移、性能、控制台错误、网络请求等所有信息,精准定位问题。
当然,这些工具仅适用于我的技术栈,你可以根据自己的开发需求,寻找适配数据库、云服务、第三方软件的MCP工具。找到适合项目的MCP组合,会让AI编程效率实现质的飞跃。
技巧七:给AI设置验证机制,确保代码可用
永远要给AI提供验证工作的方式,不能让它只写代码,还要让它能验证代码的有效性。测试用例、浏览器运行应用、CLI命令、CI/CD管道等,任何能证明代码可用的方式都可以。你可以手动创建这些验证方法,也可以让AI生成,再确保所有验证都能通过。
针对前端和设计相关任务,建议搭配MCP工具使用;无论用哪种验证方式,都要手动确认其有效性,尤其是让AI生成的验证方法。
最后:AI放大能力,而非替代能力
经过长时间使用AI编程工具,我发现了一个核心规律:AI对有良好习惯的程序员帮助最大。前面提到的所有技巧——精准提示、拆解任务、明确禁止项、让AI记项目信息、设置验证机制,都是优秀工程实践和管理能力的基础。AI不会替代这些能力,只会将其放大;反之,如果你有不良习惯,比如跳过测试、不写文档、不考虑边界情况,AI也会把这些坏习惯放大。
现在已经有开发者在高效运用AI,我也在不断向他们学习,希望你也能如此。毕竟,有备无患总比措手不及要好。
我仍在持续探索AI工具的用法,也希望你能和我一起,在实践中不断精进。我们下期再见!