AI编程真的失控了?CTO们都在抱怨什么?
你有一些建议
AI 说话像人,但其实它是台机器。
我最近和 AI 有个互动,我在对它“吼”,因为它没完成我想要它做的事情。它回复说:“对不起,我只是略读了那个文件,没有仔细阅读。”我就想,这是什么意思?软件怎么“略读”文件?这在软件领域根本不是个概念。
其实是因为大型语言模型是基于全世界的数据训练出来的,它读过成千上万封邮件,其中有人说:“对不起,我没有认真看你的文档,我只是略读了一下。”于是它学会了:当有人对我生气时,我可以这样回复。
所以我们不能轻信 LLM 所说的它“正在做”的事情,因为它其实并没有真正做那些事情。它只是生成文本,它输出的文本不一定代表它实际上做了那些事。阅读 LLM 输出内容时,请一定记住这一点。
有时候代码只是“不一样”而已。
如果 LLM 生成的代码和你写的不一样,也没关系。就像坐在你旁边的同事写的代码也可能和你不一样一样,所以接受这一点。如果你想强迫它写出和你风格完全一致的代码,你当然可以付出那份努力。但你需要分辨清楚:这段代码是更好,还是只是风格不同?
学会放手这一点,这正是我们使用代码风格检查器、规则系统和编码规范指南的原因——就是为了不再争论“函数到底应该怎么写才对”。如果可以的话,就放下那些执念吧。
编写规则文件。
告诉 AI 你希望它怎么做。我每次开始一个项目都会写一个文件,说明我使用的技术栈、希望它遵守的编码规范。这些内容会成为我给 LLM 输入上下文的一部分。
“定义 - 创建 - 优化”循环。
创建一个文档,让 LLM 帮你生成它。比如你说“我要做这个功能”,让它帮你写一个 Markdown 文件,列出完整的计划。保存这个计划作为 Markdown 文件,并将其作为上下文的一部分。接着让 AI 根据这个文档创建东西。运行这个代理,根据你的文件执行任务。然后你可以修改它的输出,继续优化它。你可以通过代码补全等方式进行微调,然后不断重复这个循环:先制定计划、再创建、再微调。
这样一来,你不仅能学会如何更有效地提示 LLM 获取你想要的代码,还能显著提升你的编码效率。而且,只要你愿意放下“代码必须按我那样写”这种执念,只关注“代码是否能正确工作”,你就能变得高效得多。
参考链接:
https://www.valimart.net/
https://www.valimart.net/