我使用 GitHub Copilot 在 PHP 中创建了一个扭蛋 API!

目录
很高兴见到你
感谢您打开这篇文章。
这位是系统开发部的新太。
近年来,随着 ChatGPT 等人工智能技术的发展,我们生活在一个非常有趣的时代。
为了避免在这个人工智能时代落后,我尝试使用GitHub Copilot
如何安装
GitHub Copilot 可以通过为 Visual Studio Code 和 JetBrains IDE 等编辑器安装插件来使用。
您可以此链接如何为每款编辑器安装插件的说明
需要订阅,因此您需要先使用此链接
笔记! ! !
如果您将个人计划保留为默认设置,您的源代码将用于学习 Copilot。
您可以将其更改为不进行学习,所以请务必进行更改。如果您使用的是商务版套餐,则默认情况下可能设置为不进行学习。
如何使用
GitHub Copilot 的工作原理是显示代码补全建议。
输入时,代码补全建议将以灰色文本显示,您可以选择它们来完成代码。
Ctrl+空格键)显示,就像常规代码补全一样
使用示例
我使用Laravel和PHP 8.2
这次使用的IDEIntelliJ IDEA Ultimate
尝试创建一个仅使用评论来执行扭蛋功能的 API。

我几乎只输入了注释部分,偶尔会出现变量名错误的情况,所以我只更正了这些错误。
当您撰写评论时,建议将显示在红色框内的区域。如果没有问题,请按 Enter 键完成评论。
目前 lotteryItem 函数还不存在,所以我们需要创建它。
创建彩票项目
我一输入函数名 lotteryItem,就出现了一个看似完美的候选源代码。

仔细观察,你会发现它与你真正想要创建的流程有所不同。
- 如果你使用
rand(0, $sumWeight)$sumWeight为 10000 时,0 将在 0 到 10000 之间抽取。 - 我想用
mt_rand代替rand。 - 我个人觉得加法比减法更容易理解,所以我想把它改成加法。
- 该参数不是一个集合。
- 这条评论有点奇怪。
尝试修复它

运行检查结果

我觉得应该没问题!
使用后的感受
起初,并没有多少支持。
我在编写抽奖函数时,它只执行了几行代码。我想可能是因为之前的代码不多,它没理解我的意图。
突然间,在某个时刻,他们开始强烈地互补。
创建好 lotteryItem 函数后,我的源代码看起来完美无缺。虽然存在一些错误,但都在可修复的范围内。
我认为你提供的信息越多,完成结果就越准确。
如果最终的候选结果与您预期的不同,则可以显示多个候选结果。
它会提供多种选择,您可以选择最适合您需求的选项。

一旦您明确了想要创建的流程,它就会自动生成注释。
例如,如果您编写一个过程来从名为 Gacha Master 的模型中检索数据,如果 Gacha Master 数据不存在,输出一条注释“
我很高兴,因为它大大减少了打字量。
未来挑战
学习如何编写 Copilot 能清晰理解的评论
如果您的评论过于笼统,系统给出的补充建议可能并非您所期望的。
只有实际尝试过才知道结果,所以我认为最好是先尝试一下,然后根据需要进行调整。
根据处理过程的不同,可能会生成错误的代码。
例如,在创建登录流程时(这类流程可能有很多示例),完成结果相当准确,但对于像扭蛋这样的流程来说,准确率就有点低了。(我认为)
它会返回类似这样的源代码,所以要小心,直接使用可能会导致错误。
除非你能自己编写,否则最好不要使用它。
很有可能会返回一段冗长且不合适的错误代码。如果您第一眼没注意到,觉得没问题,以后可能会酿成大祸。
对于编程经验较少的人来说,判断自己能信任多少可能尤其困难,所以一定要检查处理过程是否真的正确!
概括
GitHub Copilot 非常实用。如果您清楚自己想要创建什么,可以留下注释,然后 Copilot 会自动生成源代码,这大大提高了工作效率。
然而,过度依赖建议会导致忽略错误,或者过度遵循建议会阻碍你培养独立思考和执行的能力。
顾名思义,副驾驶是辅助副驾驶,因此作为主驾驶,编写代码至关重要。
祝您旅途愉快!
11