让ChatGPT为您编写代码:编码、测试和文档编写的基本实践
在使用大型语言模型(LLMs)如ChatGPT进行编程和重构任务时,确保生成的代码符合您的目标至关重要。虽然绝对的正确性永远无法保证,但我已经整理了一些技巧来帮助保持准确性。关键是要充分利用ChatGPT的能力,不仅用于编码,还用于检查生成代码的有效性。
检查可执行性和输入/输出
在程序开发过程中的关键步骤是持续验证代码的执行能力,这与自然语言生成大不相同。验证可执行性是您应该执行的基本检查。如果发生错误,要么自行解决,要么与ChatGPT分享错误信息。然后,检查程序是否再次可执行。对于具有输入和输出的程序,请确保实际输出与提供的输入基础上的预期输出匹配。
建议的程序名称
在使用ChatGPT创建程序时,同时请求一个名称建议是很有帮助的。在大多数情况下,它会提供合适的名称建议。程序的名称应该反映其目的和功能,因此确保建议的名称合适。
生成帮助选项
在您的程序中添加一个帮助选项(`-h`),使ChatGPT能够清楚地解释其用途以及如何使用它。确保帮助消息准确地反映出预期的功能。提供命令行选项可以让用户更轻松地请求特定功能,给予他们更大的灵活性。引用特定的库或函数,例如Python中的`argparse`或Shell脚本中的`getopts`,通常能产生有效的结果。
生成README.md
在创建新的存储库或程序时,重要的是创建一个 README.md 文件,概述其目的和用法。但是,撰写 README.md 需要时间,并且当程序发生变化时需要更新。ChatGPT 可以帮助生成或更新 README.md。请务必查看生成或编辑的 README.md,以确认它准确地反映了项目的功能。
查看 VSCode 编辑历史
Visual Studio Code(VSCode)提供了Git集成,允许您轻松查看自上次提交以来的代码更改。这个功能有助于跟踪项目的修改历史。当您在VSCode中打开一个Git跟踪的文件并进行编辑时,更改会被可视化突出显示:新行显示为绿色,删除行显示为红色,修改行显示为蓝色。这个功能在使用ChatGPT进行重构或添加新功能时特别有用,因为它可以帮助您轻松跟踪并理解哪些代码部分已经被生成或更改。
生成文档字符串
文档字符串是解释函数或类的目的和行为的注释。在VSCode中,将鼠标悬停在函数或类上会自动显示其文档字符串,这对自定义代码非常有用。 ChatGPT 也可以高效地为您生成这些文档字符串。
生成类型提示
类型提示明确定义了函数参数和返回值的期望类型。在Python 3.5中引入,它们提高了代码的可读性并减少潜在错误。您可以请求ChatGPT帮助为您生成它们。
编写测试程序
当您让ChatGPT创建一个程序时,最好让它为该程序创建一个测试程序。拥有一个测试程序可以让您从另一个角度理解和验证程序的功能。此外,如果您让ChatGPT进行进一步更新,您可以通过运行测试程序来检查更改是否正确。这种方法可以帮助弥补ChatGPT输出的不确定性,从而提高程序质量。“利用ChatGPT来检查其自身工作”的想法很有趣。
示例提示
以下是一个示例提示,它综合了上述提到的各个要点。这个提示作为在概述您正在开发的程序内容之后的附言。
I would like to add some additional specifications below.
- Add a help option using `argparse`.
- Add docstrings and type hints.
- Suggest some potential filenames for the script.
- Ask "(y)es/(n)o" before overwriting an existing file (default: no).
- Add the following shebang.
```
#!/usr/bin/env python3
```
Also, please generate a test code for each function of the generated code using pytest.
访问下面的GitHub页面,查看提示和生成的Python脚本示例。
您可以在同一作者的原始日文文章中找到:https://zenn.dev/nobucshirai/articles/chatgpt_programming。