如何正确地使用人工智能进行编码
开发者:“没错,Cursor/ChatGPT/AI 都很棒,但你仍然需要知道自己想要什么,或者知道如何检测幻觉。完全的新手是无法用它编写出可用的应用程序的。”
现在情况已经不太一样了……
我一直在用不熟悉的语言(Ruby)做自由职业编程,也用 PHP 做个人项目,所以我经常不确定代码的正确性如何。
我采取以下措施来确保其正确性:
总体思路:使用 AI 进行编码就像拥有一个知识渊博的编程实习生,他无所不知,但不太擅长将这些知识应用到合适的场景中,而我们只需要引导他前进。换句话说,Claude/Cursor 就像外包开发人员,我的主要工作是管理他们,为他们指明正确的方向。更多的是创意指导,而不是实际的编码工作。我认为我现在 80% 的代码都是由 AI 编写的,但这并不意味着我可以放松警惕。我必须时刻保持警惕,注意错误,遵循规范,并不断检查他们的工作。
– 在开始之前,我先和 Claude 就 Cursor 上的 Sonnet 3.5 版本进行了交流,讨论了大致的步骤和整体架构。渐进式提示。我可以用 Cursor 来引用整个代码库以获取上下文。只用 Sonnet,不要用 Opus,也不要用 Haiku。
我还为 Cursor 添加了一些系统提示或“规则”,以便它能更好地理解上下文并做出回答。提示内容改编自Cursor 论坛,大致是这样的:“您是 VSCode 中一位专业的 AI 编程助手,主要负责生成清晰易读的 Python 代码。您思维缜密,能给出细致入微的回答……”
– 在 Cursor 设置中,您还可以上传您正在使用的框架、语言或 gems/包的文档,以便它可以参考这些文档来了解最佳实践和约定。
人工智能不仅可以编写代码,还可以进行代码审查。让它审查自己的代码,可以使用诸如“这段代码有什么错误吗?”、“这是否符合 Rails/PHP 的最佳实践?”之类的提示。有时我还会问“这段代码是否符合代码库的规范?”,并@整个代码库和语言文档。
有时候我会用另一个语言学习模型(LLM)来做检查。我会打开一个单独的窗口,让 Llama 3.1 或 GPT-4o 来再次检查代码中的错误。这就像找医生寻求第二意见一样。
分享错误信息,高亮显示代码,使用 cmd-L 并链接正确的文件,以便提供足够的上下文。这一点我怎么强调都不为过,但对于 Cursor 来说,使用 @ 符号链接正确的文件/组件,甚至是互联网上的文档,都非常有效。虽然每次都 @ 整个代码库似乎很诱人,但根据个人经验/观察,提供过多的上下文信息反而会适得其反,让它“混乱”,甚至出现一些莫名其妙的建议。上下文信息的多少似乎存在一个最佳平衡点——这更多的是一种艺术而非科学。
或者直接用 cmd-K 编辑代码行。否则,我会让它逐行解释其工作原理,并向它提问,与它进行推理。我从这个过程中学习,知识和技能不断提升。这是非常重要的一步,因为人们说人工智能会让人变得懒惰,削弱你的编程能力,这话没错,但我认为关键在于如何使用它。我尽量避免以让自己变得懒惰或退化的方式使用人工智能,而是通过提问、推理和不断学习来提高效率。真正的“精神废用”是指不加思考/学习地复制粘贴。这需要每天坚持练习,就像吃蔬菜或去健身房一样。说起来容易做起来难。
按照这些步骤,我99%的情况下都能解决bug。剩下的1%是遇到特殊配置问题,或者关键的上下文信息被隐藏或不在代码库中的情况。这时我通常需要资深开发人员的帮助,或者通过代码审查或测试来发现问题。这是常规做法。这些流程旨在降低AI生成代码可能带来的任何潜在缺陷。
Cursor + Claude Sonnet 就像代码超能力一样。
首次发表于Lifelog。
文章来源:https://dev.to/jasonleowsg/how-to-use-ai-for-coding-the-right-way-4cdn