英语轻松读发新版了,欢迎下载、更新

利用 ChatGPT 提高编程效率的 25 个 AI 技巧

2024-11-18 13:00:00 英文原文

作者:Written by David Gewirtz, Senior Contributing Editor Nov. 18, 2024 at 5:00 a.m. PT

digitalspeed-gettyimages-1322205545
dapecharge/盖蒂图片社

在过去一年左右的时间里,我一直在尝试使用 ChatGPT 来帮助提高我的编程输出。什么时候ChatGPT 帮助我发现了一个令人不安的错误,我意识到人工智能中有一些有价值的东西。

还:每个网站都同意您梦想的编程工作需要这种语言

与我交谈过的许多人都认为人工智能是一个神奇的精灵,它可以通过一个单一的、勉强形成的愿望来实现整个程序或应用程序。这是一个更好的类比:人工智能是一种强大的工具。当然,您可以使用老式锯来锯木头,但台锯的速度要快得多。这两种工具都不能制造家具。他们只是简单地帮助你做家具。请记住,人工智能不会为您编写代码。它将帮助您编写代码。

尽管我无法客观地告诉您 ChatGPT 对我的帮助有多大,但我相当确信它使我的编程输出翻了一番。换句话说,通过使用 ChatGPT 作为我的工具包的一部分,我的工作量增加了一倍。

我主要使用 ChatGPT Plus,而不是免费版本的 ChatGPT。最初,这是因为 Plus 中的 GPT-4 模型比免费版本中的 GPT-3.5 模型更擅长编码。但现在两者都支持 GPT-4o 模型的某些变体,因此它们的编码功能是相同的。然而,在要求您等待一段时间之前,免费版本只会收到这么多查询,而且我发现这会打断我的编程流程。所以,我使用 20 美元/月的 Plus 版本。

还:最好的人工智能编码(以及不该使用的)

回想我所有的项目,我意识到我可以分享一些关于如何充分利用人工智能编程合作伙伴的切实建议。干得好。

1. 给人工智能很多小工作

人工智能不能很好地处理复杂的指令集,特别是如果你希望它本质上进行产品设计的话。但它非常擅长解析和处理小型且定义明确的指令集。

2. 如果您将机器人视为 Slack 对话另一端的某个人,这会很有帮助

与同事之间来回发送电子邮件的节奏不同,每次交互可能会间隔几个小时,而是想象一下您在 Slack 聊天中,每次交互要小得多,但间隔几秒钟。

3. 对于更复杂的例程,迭代提示

从一个简单的作业开始,正确编写后,逐个元素地添加更多内容。我只需剪切并粘贴之前的提示,添加和删除提示的一些部分,因为我得到了适合我正在寻找的内容的代码块。

4. 测试人工智能返回的每一小块代码

永远不要假设代码会正常工作。将其修补到您的项目中并查看其性能如何。

5.使用调试器

要进行更深入的测试,请立即进入调试器并逐步浏览 AI 生成的代码。观察变量及其作用。请记住,只要您检查每个语句和行是否正常运行,就可以让它为您编写代码片段。

6.您不需要在 IDE 中内置 AI 编码帮助

许多编码工具供应商都在他们的工具中推销集成人工智能的想法。除此之外,这使他们能够向你推销人工智能功能。然而,我更喜欢使用 ChatGPT 作为完全独立于我的开发环境的工具进行编码。我不希望人工智能能够进入我的主要编码环境并改变其中的内容。

7. 随意从生成的例程中删除代码行

您不必总是使用人工智能为您生成的所有内容。就像你可能会去的那样堆栈溢出查找代码示例,然后选择要复制的行,您可以对 AI 生成的代码执行相同的操作。

8. 避免要求人工智能进行专有编码或使用它不具备的机构知识

人工智能大型语言模型使用训练数据或在网络上找到的数据。这意味着他们通常对您独特的应用程序或业务逻辑一无所知。因此,请避免尝试让人工智能编写任何需要这种知识水平的内容。那是你的工作。

9. 给 AI 提供示例,以便它理解代码的上下文

我给了 ChatGPT 一个 HTML 页面的片段,并要求它添加一个功能来扩展文本块。它给了我 HTML、JS 和 CSS。后来我要求它提供一个额外的 CSS 选择器,然后要求它证明其工作的合理性,于是它向我解释了为什么它这样做。所有这些都有效,因为我给它启动的示例帮助它理解了上下文。

10.使用人工智能进行常识编码

我发现人工智能代码的最大好处是当我用它来编写使用常识、流行库和常规实践的代码块时。人工智能将无法编写您独特的业务逻辑。但是,如果您要求它为来自库和 API 的功能编写代码,它将为您节省大量时间。

11.随时索要一行或两行片段

即使您需要的东西可能只生成一两行响应,也可以像使用任何研究工具一样使用人工智能,只要它可以节省您的时间。

12. 当人工智能编写的代码不起作用时告诉它

当然,这只有在测试生成的代码时才有效。我发现人工智能经常会输出不完整或无功能的代码。告诉它什么不起作用,也许还可以提出澄清建议。然后要求它写一些新的东西。通常是这样,并且修改后的代码有时比原始代码更好。

13. 使用一个 Al 检查另一个 Al 的工作

了解两种不同的语言模型如何解释同一代码块通常很有趣。正如我们所见,并非所有语言模型都能很好地工作,但他们的结果可能具有启发性。您甚至可以让一个 ChatGPT 会话检查另一个 ChatGPT 会话的结果。

14.使用AI编写CSS选择器

CSS 选择器是编码人员用来定义网页上的元素以进行样式设置或其他操作的表达式。它们很快就会变得复杂和神秘。我经常复制一段 HTML 并要求为该 HTML 的给定片段提供选择器。它可以节省大量时间,但请记住,您通常必须进行迭代,告诉人工智能前几个选择器不起作用,直到它生成一个起作用的选择器为止。

15.使用AI为你编写正则表达式

正则表达式是最常用于解析文本的符号数学序列。我不喜欢编写它们,就像我不喜欢编写 CSS 选择器一样。人工智能非常擅长编写正则表达式,尽管您肯定需要测试它们。

16.使用AI测试正则表达式

我使用一个名为图案用于测试我的生成的正则表达式Mac工作室。但人工智能也可以提供帮助。我经常向 AI 的单独实例提供由 ChatGPT 生成的正则表达式。然后我问那个单独的实例,“这是做什么的?”如果我得到符合我想要该功能执行的功能的描述,我就会更有信心人工智能会完成我想要的功能。

17. 让人工智能做复杂的循环数学

与 CSS 选择器和正则表达式一样,复杂的循环数学可能很乏味且容易出错。这是人工智能的理想应用。指定提示时,不要告诉 AI 循环中的内容。只需让它编写适当的循环包装元素,然后在工作后编写业务逻辑即可。

18. 使用“这段代码有什么问题?”作为提示

我经常将代码块,尤其是由人工智能生成的正则表达式,提供给人工智能。了解人工智能认为代码有什么问题非常有启发性,通常会突出显示代码未测试的错误条件。然后,当然,要求人工智能重新生成代码,修复它发现的错误。

19. 使用“这是做什么的?”作为提示

同样,我喜欢向人工智能提供代码块并询问它“这是做什么的?”即使对于我自己的代码来说,它通常也很有启发性。但最大的好处是当我正在处理别人编写的代码时。将函数或块提供给人工智能可以节省大量对原始代码进行逆向工程的时间。

20.知道何时放弃人工智能

有时,人工智能根本无法完成这项工作。我发现,如果你尝试让它重写代码超过两到三次,你就已经到了无可挽回的地步。如果您确实想要人工智能生成的代码,请从全新的、重新措辞的提示开始,看看您会从中得到什么。有时,您只需要自己去做。

21. 函数和变量命名要具体

人工智能从变量和函数名称中获取意图并编写更好的代码。例如,将变量名称指定为 $order_date 有助于告诉 AI 您正在处理订单和日期值。它比像 $od 这样的东西要好得多。更好的是,从命名良好的变量名称生成的代码通常也更具可读性,因为它知道对其创建的其他变量使用更具描述性的名称。

22.阅读代码前和代码后的注释

人工智能通常会在其编写的代码之前和之后生成一些关于每个提示的注释。其中可能有一些宝石可以帮助您了解人工智能做了什么或者它如何解决问题。有时,人工智能还会向您指出其他可能有用的库或函数。

23. 稍后可以返回并寻求有关代码片段的更多帮助

从项目中获取各种代码来说明您需要什么,告诉 ChatGPT 阅读它们,然后询问您想要什么。我需要在扩展区域中建立输入字段的排除,然后我回去询问。不到一分钟后,我就得到了自己编写的代码,而这些代码本来需要我 10 分钟到一个小时才能编写。

24.使用Al帮助你重写过时的代码块

我有一个用旧版本 PHP 编写的 PHP 模块,该模块使用了现已弃用的语言功能。为了更新代码,我将已弃用的代码段粘贴到 ChatGPT 中,并要求它告诉我如何重写它以与最新的 PHP 版本兼容。确实如此,而且有效。

25. 使用人工智能帮助你编写不太熟悉的语言

我很乐意学习新的编程语言,但我发现,如果我需要用我不擅长的语言进行编码,人工智能会非常有帮助。我只是问它如何编写我想要的内容,并指定语言。假设我想知道如何在 Python 中执行 case 语句,而我一直在 Perl 中执行这些操作。只需询问“比较用 Perl 和 Python 编写 case 语句”或“如何在 Python 和 PHP 中连接字符串”。您将得到很好的比较,这使得编写不熟悉的代码变得更加容易。

这是一个额外的提示。与您的公司核实生成的代码的法律问题。如果您不确定从哪里开始,阅读我关于人工智能和代码所有权的文章。如果您使用我与您分享的技巧,您将永远不会使用人工智能来编写独特的业务逻辑或使您的代码独一无二的核心。因此,您可能能够保留该代码的版权,这应该构成您独特价值的关键要素。

我编写的代码供公司内部使用或开源代码,因此当涉及人工智能生成的代码片段时,我并不太关心所有权问题。

您使用过人工智能来帮助编写代码吗?您有什么建议可以添加到我上面的列表中吗?请在下面的评论中告诉我们。


您可以在社交媒体上关注我的日常项目更新。请务必订阅我的每周更新时事通讯,并在 Twitter/X 上关注我:@大卫格维茨,在 Facebook 上Facebook.com/DavidGewirtz,在 Instagram 上Instagram.com/DavidGewirtz,以及 YouTube 上的YouTube.com/DavidGewirtzTV。.

关于《利用 ChatGPT 提高编程效率的 25 个 AI 技巧》的评论


暂无评论

发表评论

摘要

对于任何希望将人工智能有效地集成到其编码工作流程中而又不丢失项目独特业务逻辑的人来说,您的技巧非常有价值。以下是包含其他见解和实际应用建议的摘要:1. **人工智能作为研究工具**:** 通过询问“这段代码有什么问题?”,利用它来理解您正在努力解决的复杂算法或库、CSS 和其他编程概念。人工智能建议。2. **迭代反馈:** 当AI产生不功能或不完整时,进行反馈直至改进。3. **交叉检查人工智能输出:** 它增强了对结果的信心;运行多个人工智能会话来检查解决方案的一致性和多样性”:这鼓励创造性地解决问题,提供生成的正则表达式或复杂的函数/代码以查看不同的解释,这可能是有洞察力的。4. **利用 AI 进行正则表达式测试:** 除了使用 Patterns (Mac) 等测试工具外,还可以使用另一个 AI 实例来验证它。5. **CSS 选择器请求:** HTML 块,向 CSS 选择器请求该 HTML 元素。然而,迭代完善直到功能可用。6. **人工智能限制**:尽管有这些好处和挑战,尽管迭代反馈效果不佳或生成非功能性正则表达式,特别是复杂的循环或独特的业务逻辑,但它会在没有成功的情况下挣扎,最好还是手动执行你自己吧。7. **人工智能生成代码的道德规范:** 检查公司的所有权政策。我的文章“人工智能和代码”有助于理解权利问题,如果人工智能无法生成工作代码,则需要进行一些小调整以适应新方法或从头开始编写逻辑。### 实际应用1. **提示清晰度:** 为了清晰起见,作为描述性提示,提示中的变量名称(如“$current”)告诉它涉及上下文订单日期。2. **反馈循环:** 初始生成后,迭代完善直至满意或功能正常。3. **交叉参考解决方案:** 多个实例比较可以突出独特的见解。### 社区和反馈通过社区反馈分享此列表中的经验以及您自己的技巧,以不断改进如何有效地使用人工智能来完成重复、乏味但不是项目逻辑核心的编码任务。了解这些限制有助于提高效率,同时保持代码项目的唯一性。---希望听到更多有关在编码社区中使用人工智能的具体挑战或成功的信息!**跟进:**- 在这里分享您的经验和技巧!- 在全面整合之前探索公司政策的道德考虑因素。- 继续尝试迭代细化、交叉检查和有效利用人工智能优势的提示。请随时在下面留下任何评论或问题!🚀---**注意:** 有关人工智能生成代码的法律方面的全面指南,请查看您的文章“人工智能和代码所有权”。在完全融入项目之前了解权利至关重要。🧑‍💻✨