共计 3199 个字符,预计需要花费 8 分钟才能阅读完成。
在过去的一年左右时间里,我一直在尝试使用 ChatGPT 来帮助提升我的编程效率。当 ChatGPT 帮助我发现了一个棘手的错误时,我意识到 AI 确实有其价值。
与我交谈的许多人认为,AI 是一个神奇的工具,能够从一个几乎不成形的愿望中生成整个程序或应用。这里有一个更好的比喻:AI 是一种强大的工具。当然,你可以用老式的锯子来切割木材,但台锯的速度要快得多。这两种工具都不会制作家具。它们只是帮助你制作家具。请记住,AI 不会为你编写代码。它会帮助你编写代码。
虽然我无法客观地告诉你 ChatGPT 到底帮助了我多少,但我相当确信它使我的编程效率翻了一番。换句话说,通过将 ChatGPT 作为我的工具包的一部分,我完成了两倍的工作量。
1. 给 AI 分配大量小任务
AI 不擅长处理复杂任务,尤其是当你期望它基本上进行产品设计时。但它非常擅长解析和处理小而定义明确的指令集。
2. 将 AI 视为 Slack 对话另一端的人
与其像与同事通过电子邮件来回交流那样,每次互动可能间隔数小时,不如想象你在 Slack 聊天中,每次互动更小,但间隔只有几秒钟。
3. 对于更复杂的例程,逐步引导
从一个简单的任务开始,当它被正确编写后,逐步添加更多内容。我通常会剪切并粘贴之前的提示,添加和删除提示的某些部分,直到我得到符合我需求的代码块。
4. 测试 AI 返回的每一段代码
永远不要假设代码会直接工作。将其插入你的项目中,看看它的表现如何。
5. 使用调试工具
为了更深入的测试,不要犹豫,进入调试工具并一步一步地检查 AI 生成的代码。观察变量和它的具体操作。记住,只要检查每一个语句和行是否正常工作,让它为你编写代码片段是可以的。
6. 你不需要将 AI 编码辅助直接集成到你的开发工具中
许多编码工具供应商正在推销将 AI 直接集成到他们的工具中的想法。这使他们能够向你推销 AI 功能。然而,我更喜欢将 ChatGPT 作为与我的开发环境完全分开的工具来使用。我不希望 AI 能够进入我的主要编码环境并改变其中的内容。
7. 随意从生成的代码片段中提取代码行
你不必总是使用 AI 为你生成的所有内容。就像你可能去 Stack Overflow 查找代码示例,然后选择你想要复制的行一样,你也可以对 AI 生成的代码做同样的事情。
8. 避免让 AI 进行专有编码或使用它没有的特定知识
AI 大型语言模型依赖于训练数据或它们能在网上找到的内容。这意味着它们通常不知道你的独特应用程序或业务逻辑。因此,避免尝试让 AI 编写任何需要这种知识的代码。那是你的工作。
9. 给 AI 提供示例以便它理解你的代码背景
我给了 ChatGPT 一个 HTML 页面的片段,并要求它添加一个展开文本块的功能。它返回了 HTML、JS 和 CSS。后来,我要求它提供一个额外的 CSS 选择器,然后要求它解释其工作,它向我解释了为什么它做了它所做的事情。所有这些都有效,因为我最初提供的示例帮助它理解了背景。
10. 使用 AI 进行常见代码编写
我发现 AI 代码的最大好处是当我使用它来编写使用常见知识、流行库和常规实践的代码块时。AI 无法编写你的独特业务逻辑。但如果你要求它为来自库和 API 的功能编写代码,它会为你节省大量时间。
11. 随意要求一行或两行的代码
即使你只需要生成一行或两行的响应,如果 AI 能为你节省时间,就像使用任何研究工具一样使用它。
12. 告诉 AI 它编写的代码无法运行
当然,这只有在测试生成的代码时才能起作用。我发现 AI 经常输出不完整或无法工作的代码。告诉它什么不工作,并可能提出一个建议来澄清。然后要求它编写新的代码。通常它会这样做,并且修订后的代码有时比原始代码更好。
13. 使用一个 AI 检查另一个 AI 生成的代码
看看两个不同的语言模型如何解释同一段代码通常很有趣。正如我们所见,并非所有语言模型都那么有效,但它们的结果可能具有启发性。你甚至可以让一个 ChatGPT 会话检查另一个 ChatGPT 会话的结果。
14. 使用 AI 编写 CSS 样式选择器
CSS 样式选择器是编码人员用来定义网页上元素以进行样式设置或其他操作的表达式。它们很快就会变得复杂和晦涩。我经常复制一段 HTML 并要求为该 HTML 的某个部分生成一个选择器。这可以节省大量时间,但请记住,你通常需要迭代,告诉 AI 前几个选择器不工作,直到它生成一个有效的选择器。
15. 使用 AI 为你编写正则表达式代码
正则表达式代码是用于解析文本的符号数学序列。我几乎和讨厌编写 CSS 样式选择器一样讨厌编写它们。AI 非常擅长编写正则表达式代码,尽管你肯定需要测试它们。
16. 使用 AI 测试正则表达式代码
我使用一个名为 Patterns 的应用程序在我的 Mac Studio 上测试生成的正则表达式代码。但 AI 也可以提供帮助。我经常将 ChatGPT 生成的正则表达式代码输入到 AI 的另一个实例中。然后我问那个实例,“这是做什么的?”如果我得到的描述与我希望函数执行的操作一致,我会对 AI 所做的事情更有信心。
17. 让 AI 进行复杂数学运算
与 CSS 样式选择器和正则表达式代码一样,复杂的数学运算可能既繁琐又容易出错。这是 AI 的理想应用。在指定提示时,不要告诉 AI 循环中有什么。只需让它编写适当的循环包装元素,然后在循环工作后编写业务逻辑。
18. 使用“这段代码有什么问题吗?”作为提示
我经常会将 AI 生成的代码块,尤其是正则表达式代码,输入到 AI 中。看看 AI 认为代码有什么问题通常很有启发性,通常会突出显示代码未测试的错误条件。当然,然后要求 AI 重新生成代码,修复它发现的错误。
19. 使用“这段代码的功能是什么?”作为提示
同样,我喜欢将代码块输入到 AI 中,并问它“这段代码的功能是什么?”即使是我自己的代码,这通常也很有启发性。但最大的好处是当我处理别人编写的代码时。将一个函数或代码块输入到 AI 中可以节省大量时间来逆向工程原始代码。
20. 知道何时停止使用 AI
有时,AI 就是无法完成工作。我发现,如果你尝试让它重写代码超过两三次,你就已经过了无法回头的点。如果你真的想要 AI 生成的代码,从一个全新的、重新措辞的提示开始,看看你能得到什么。有时,你只能自己动手。
21. 在命名函数和变量时要具体
AI 从变量和函数名称中获取意图并编写更好的代码。例如,将变量名称指定为 $order_date 有助于告诉 AI 你正在处理订单和日期值。这比像 $od 这样的东西要好得多。更好的是,从良好命名的变量名称生成的代码通常也更易读,因为它知道为它创建的其他变量使用更具描述性的名称。
22. 阅读代码前后的注释内容
AI 通常会在它编写的代码前后生成一些注释。其中可能有一些宝石,可以帮助你理解 AI 做了什么或它是如何解决问题的。有时,AI 还会向你指出其他可能有用的库或函数。
23. 稍后回去并要求更多帮助是可行的
从你的项目中抓取各种代码片段来说明你需要什么,告诉 ChatGPT 阅读它们,然后要求你想要的。我需要在一个扩展区域中为输入字段构建一个排除项,我回去并要求了。不到一分钟后,我得到了一段代码,这段代码本来需要我自己写 10 分钟到一个小时。
24. 使用 AI 帮助你重写旧代码
我有一个用较旧版本的 PHP 编写的 PHP 模块,它使用了一个现在已弃用的语言特性。为了更新代码,我将弃用的代码段粘贴到 ChatGPT 中,并要求它告诉我如何重写它以兼容最新的 PHP 版本。它做到了,并且成功了。
25. 使用 AI 帮助你编写不熟悉的编程语言
我非常擅长学习新的编程语言,但我发现如果我需要在一个我不太熟悉的编程语言中编写代码,AI 真的很有帮助。我只需要问它如何编写我想要的内容,并指定语言。假设我想知道如何在 Python 中编写一个 case 语句,而我一直在 Perl 中编写它们。只需问“比较在 Perl 和 Python 中编写 case 语句”或“如何在 Python 和 PHP 中连接字符串”。你会得到一个很好的比较,并且编写不熟悉的代码会容易得多。
我为公司内部使用或开源项目编写代码,所以我对 AI 生成的代码片段的所有权问题并不太担心。