因为同时更新星球和公众号比较费时,以后此系列会在星球里持续更新,欢迎大家以后移步星球进行阅读。
引言

熟悉我的人可能都知道,我最擅长的是Java语言,并且日常开发的主要工具之一是IntelliJ IDEA。之前写过一篇文章,简单介绍了三种编程助手Github Copilot、Cursor和Bito。而今天,具体介绍一下Github Copilot在Intellij IDEA中的应用之一,给出思路,生成代码,实现功能。
给出思路、实现功能

我先用Idea创建了springboot的项目,然后我要基于此项目去进行开发设计计算器的相关接口。我给出了它下面的Prompt:
现在我想设计一个计算器的Restful API,去实现最基本的加减乘除这四种运算,详细告诉我每一步应该如何去做。要求是只创建一个Restful API方法,通过传入不同的参数,去达到计算的目的。

然后它给出了我们下面的答案和每一步详细的步骤和具体代码,还有最后如何进行测试。


然后我继续对其提问进行调教,使生成的结果,更贴近于我最想要的。比如我继续对prompt进行优化,因为现在的逻辑也写在controller中了,我想让其写在service中。
现在的计算逻辑都写在controller里面了,我想将计算逻辑写在service中,并且在controller中进行调用,请帮我继续改善。
Copilot根据我的prompt,对代码进行了优化。


大家注意上图的蓝色字体,可以发现,他会针对上下文,去猜我们继续还想问什么,正常思路,代码写完之后,我们想要测试,他已经给出了提示:How can I test the calculator API?那我们就点一下,看下他教我们如何进行测试。


这里他给我们生成了一个Mock的测试类去模拟测试。
最后一步了,我们根据上面他回答的内容,把代码真正应用到工程中,看看效果如何,是不是靠谱。

通过上面跑Junit的结果来看,代码是没有问题的,现在我们来启动项目,真正访问跑一次看看效果如何。这次我们算一个乘法,访问路径如下:http://localhost:9890/calculate?num1=6&num2=10&operator=*

通过上面的例子可以看出来,完全没有问题。
总结:上面列举了一个计算器API的设计,大家可能也感觉到了,prompt的提问特别重要。你描述得越细,他给出的答案就越精确,如果生成的答案不满意,可以继续进行调教,直到输出的答案符合你的预期为止。其实这部分演示只是最基础的问答功能,例子也比较简单,在ChatGPT上进行基础问答也完全可以实现,只不过这里我是在Idea的插件Github Copilot Chat中实现的。
(正文完)

原文作者:极客e家;如有侵权,请联系管理员删除。