我使用 PHP 和 GitHub Copilot 创建了一个 gacha API!
目录
很高兴见到你
感谢您打开这篇文章。
我叫 Shinta,来自系统开发部。
一段时间以来,我们一直生活在一个对 ChatGPT 等人工智能技术的开发抱有极大兴趣的时代。
为了在这么大的AI时代不被抛在后面,这次我尝试使用GitHub Copilot
如何安装
可以通过在 Visual Studio Code 或 JetBrains IDE 等编辑器中安装插件来使用 GitHub Copilot。
您可以从此链接如何为每个编辑器安装插件
因此您需要在安装插件之前此链接
笔记! ! !
如果您保留个人计划的默认设置,您的源代码将用于学习 Copilot。
您可以更改它以防止它被学习,因此请务必更改它。如果您使用的是商业计划,我认为默认设置为不学习。
如何使用
GitHub Copilot 可与代码完成建议一起使用。
当您键入时,代码补全候选将以灰色文本显示,因此您可以选择它来补全代码。
与常规代码完成类似,Ctrl+Space
等快捷键显示
使用示例
我将laravel与PHP8.2
我使用IntelliJ IDEA UltimateIDE
我将尝试创建一个尽可能仅使用评论来运行扭蛋的 API。
我只输入了注释部分,有时变量名是错误的,所以我更正了那部分。
当你写评论的时候,会出现红框所示的候选者,所以如果没有问题的话,按回车键,评论就完成了。
此时lotteryItem函数还不存在,因此我们需要创建它。
创建彩票处理lotteryItem
当我输入函数名称lotteryItem时,一个完美的源出现作为候选。
如果你仔细观察,它与你实际想要创建的流程不同。
- 使用
rand(0,$sumWeight)
$sumWeight
为 10000 时,也会在 0 到 10000 之间绘制 0。 - 我想使用
mt_rand
而不是rand
- 就我个人而言,我发现加法处理比减法处理更容易看到,所以我想改变它。
- 参数不是集合
- 评论有点奇怪
我会尽力修复它
操作确认结果
我想应该没有什么问题吧!
使用后的感想
补充在早期不是很有效
当我创建彩票功能时,它只完成了几行。我认为这可能是因为他们不明白自己想要创建什么,因为他们没有很多现有代码。
在某个时刻,它突然对你产生了强烈的补充。
当我创建lotteryItem函数时,我一眼就找到了完美的来源。虽然有一些错误,但都在可以纠正的范围之内。
我认为描述越多,完成的就越准确。
如果完成候选人与您的意图不同,您可以建议多个候选人。
它会给您一些建议,因此您可以选择适合您意图的一项。
当您想要创建的流程变得清晰时,您可以自动编写注释。
例如,如果您编写一个从名为 Gacha Master 的模型中获取数据的流程,则如果 Gacha Master 数据不存在,
行将输出一条注释“
我很高兴,因为我可以简单地减少类型的数量。
未来的挑战
了解如何撰写注释,以便 Copilot 能够正确理解它们。
如果注释太模糊,完成候选可能与您的预期不同。
除非你真正尝试过,否则你不会知道任何事情,所以我认为尝试一下并进行适当的调整是个好主意。
根据流程的不同,可能会完成错误的代码。
例如,当创建一个涉及很多样本的登录流程时,会得到相当准确的完成结果,但这次类似扭蛋的流程就不太准确了。 (我感觉很喜欢)
您将收到看起来像这样的源代码,因此如果按原样使用它,请小心,因为它可能会导致错误。
除了您可以自己编写的流程之外,最好不要将其用于任何其他用途。
长时间返回不合适的代码的可能性很大。我看了一眼,没注意到!如果这样做,以后将会酿成大祸。
特别是对于编程经验很少的人来说,可能很难判断可信程度,所以一定要检查处理是否确实正确!
概括
GitHub Copilot 相当方便,如果你清楚自己要创建什么,可以留言,让 Copilot 写源码,大大提高了工作效率。
但是,如果你过于依赖建议,你可能不会注意到错误,或者如果你过多遵循建议,你可能没有能力自己思考和实现它们。
顾名思义,Copilot 就是协助你的副驾驶,所以你作为主驾驶来编写代码很重要。
祝您飞行愉快!