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

很高兴见到你

感谢您打开这篇文章。

这位是系统开发部的新太。

近年来,随着 ChatGPT 等人工智能技术的发展,我们生活在一个非常有趣的时代。

为了避免在这个人工智能时代落后,我尝试使用GitHub Copilot

如何安装

GitHub Copilot 可以通过为 Visual Studio Code 和 JetBrains IDE 等编辑器安装插件来使用。

您可以此链接如何为每款编辑器安装插件的说明

需要订阅,因此您需要先使用此链接

笔记! ! !

如果您将个人计划保留为默认设置,您的源代码将用于学习 Copilot。

您可以将其更改为不进行学习,所以请务必进行更改。如果您使用的是商务版套餐,则默认情况下可能设置为不进行学习。

如何使用

GitHub Copilot 的工作原理是显示代码补全建议。

输入时,代码补全建议将以灰色文本显示,您可以选择它们来完成代码。

Ctrl+空格键)显示,就像常规代码补全一样

使用示例

我使用LaravelPHP 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
加载中...
11票,平均分:1.00/111
2,512
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

新太

我出生于横滨,是一名游戏工程师,也是一名敬业的工程师!