站点图标 AI技术聚合

微软官方 Copilot AI 编程训练营第一天精华总结

阿七参加的微软官方组织的 Copilot AI 编程训练营开始了,这是第一天。

GitHub Copilot 官方统计,使用 GitHub Copilot 的开发者基本上能极大的提升编码效率、减少重复性代码编码时间且能更加专注于主线任务。

不管这个数据有多少水份,至少说明,我们熟悉 Copilot 编程还是非常有必要的!

我们开始吧~

第一天的内容相对比较基础,但是也会不少的信息增量。

比如:Copilot 支持了一个命令 @workspace,这个命令能帮我们分析整个代码空间的信息,比如分析整个项目使用的技术,帮助我们快速熟悉整个项目,而不只是当前正在编辑的文件。

另外 GitHub Copilot 针对不同的场景会产出很多不同的产品。比如:

  • Copilot for Docs 项目文档。
  • Copilot for Pull Request 代码提交自动生成 commit message。
  • Copilot Voice 语音写代码。
  • Copilot for CLI 命令行工具,不用记住繁琐的各种 shell 命令了。
  • 等等

我们以一个基础的问题开始,这个问题可能很多人都回答不上来

GPT 的 G.P.T 分别是什么意思?

GPT = Generative Pre-trained Transformer

「G」代表「生成式」(Generative),这指的是该模型是一种生成式语言模型,可以生成文本,而不仅仅是对输入文本进行分类或预测。

「P」代表「预训练」(Pretrained),这指的是该模型
是一种预训练语言模型,意味着在进行具体的任务 fine-tuning 之前,该模型已经通过大规模无标签数据进行了预训练,从而学习了通用的语言知识和结构。

其中「Transformer」是指该模型的基础架 构采用了 Transformer 架构,它是一种用于序列到序列模型的深度神经网络架构,通过自注意力机制来捕捉输入序列的长程依赖关系。

所以,本质上,GPT 就是一个基于已有大规模的知识的接龙游戏!每次都选择概率最大的词进行输出,就是 GPT 的答案。

AI 碾压人类的10个编程场景

  1. 正则表达式编写
  2. 编写测试代码,包含各类边界条件验证
  3. 使用难以记忆关键字编写代码,比如:HTML/CSS编写
  4. 编写/不熟悉的复杂算法
  5. 使用/学习不熟悉的编程语言
  6. 按常识完善对象字段
  7. 示例/测试数据生成
  8. 复杂参数填写和上下文匹配
  9. 理解复杂代码并编写文档,评审代码,提出改进意见
  10. 自动编写单元测试,一次性提高代码测试覆盖率

提示词工程

总结一下,其实就是这几点,做到这几点你的回答就不会偏离太远。

  1. 要具体、描述性和尽可能详细
  2. 减少模棱两可或不精确的描述
  3. 通过示例显示所需的格式
  4. 分配角色
  5. 将复杂的任务拆分为更简单的子任务

然后,我们介绍一下 GitHub Copilot 的基本功能如何使用,让我们 10 倍提效编程!

GitHub Copilot 代码实践

1、解释代码

1.1 Explain This

右键选择 Copilot,然后选择 Explain This

会在 Chat 窗口详细解释选择代码的意思。

1.2 逐行解释

先右键,选择 Copilot,然后选择 Start Inline Chat,输入逐行解释。

Copilot 会逐行解释选中的代码。

2、代码注释

2.1 单行注释

在代码前输入双斜杠,然后输入第一个词,就会输出完整行注释。

输入双斜杠和 F,就能提示完整注释了。

2.2 逐行注释

右键选择 Copilot,然后选择 Start Inline Chat,输入【插入注释以逐行解释此代码】,就可以为整个方法生成逐行注释。

3、生成文档/方法注释

右键选择 Copilot,然后选择 Gernate Docs,就能为方法生成接口级别注释。

要注意的是,我们可以让 Copilot 学习项目中已有的注释模板,为新的文件生成符合模板的注释。

4、注释生成代码

输入注释:// Search for a word in the trie,按 enter,就能看到推荐的完整代码了。

5、生成单元测试

输入测试相关提示词就能自动生成单元测试。

之后,我们进行了大量的实战练习,通过 Copilot 完成一些我们并不熟悉编程语言的小项目,比如网页计算器,我们需要完成前端代码的开发和 node 后端的开发,基本上大家都能很好的借助 Copilot 完成。

这说明,借助类似 GitHub Copilot 编程助手,编程语言的界限再一次模糊,不管是什么语言的开发者,都能借此完成以前需要一个团队才能完成的工作,开发自己的产品

点击链接,领取分享 PPT和面向开发者的提示词.pdf

版权声明:本文为博主作者:伍六七AI编程原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/Prepared/article/details/135232138

退出移动版