Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码 【AI辅助开发系列】

Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码 【AI辅助开发系列】

🎀🎀🎀【AI辅助编程系列】🎀🎀🎀

  1. Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码
  2. Visual Studio 安装和管理 GitHub Copilot
  3. Visual Studio 使用 GitHub Copilot 扩展
  4. Visual Studio 使用 GitHub Copilot 聊天
  5. Visual Studio 使用 GitHub Copilot 协助调试
  6. Visual Studio 使用 IntelliCode AI 辅助代码开发
  7. Visual Studio 玩转 IntelliCode AI辅助开发

文章目录


在这里插入图片描述

前言📋

今天介绍两款 Visusal Studio AI辅助开发工具 ,后续还会介绍一些其他的好用的工具,比如阿里的 通义灵码 等。借助这些工具可以大大提高我们的工作效率和开发效率。


一、AI 辅助开发如何提供帮助❓

1.1 让 AI 帮助你更快地编写代码

  • 可以帮助你生成代码 和整个 函数建议(例如,如何通过用自然语言进行描述来编写代码以执行任务)
  • 根据编程模式 预测 接下来要编码的内容(补全)。
  • 通过 AI 驱动型上下文 感知建议 进行 代码重构

1.2 询问 AI 助手更好地了解代码

  • 代码部分的说明(例如,在你尝试理解别人的代码时)。
  • 编程问题的解答

1.3 更快速地进行分析和调试

  • 根据 AI 建议 优化性能
  • AI 标识的 bug 和解决方法。

二、GitHub Copilot 与 IntelliCode🤖

GitHub CopilotIntelliCode 可帮助你更快、更准确地编写代码,帮助更深入地了解代码库,并帮助执行其他开发任务,例如编写 单元测试调试分析

2.1 Visual Studio 中的 GitHub Copilot

Visual Studio IDE 中的 GitHub Copilot 充当 AI 结对程序员,帮助你在编写代码时提高工作生产力和效率。

Visual Studio 中的 GitHub Copilot 完成通过基于你提供的 上下文生成 整行或代码块,为开发过程添加了增强的 AI 协助。 它利用在数十亿行开源代码中训练出来的 AI 模型,在你编写代码时,直接在编辑器中实时提供自动完成式的代码建议。 它可帮助你更快地编写代码,且工作量更少。

可以在 IDE 中从 GitHub Copilot 获取建议,方法是开始编写想要使用的代码,或者在代码文件中编写 函数签名自然语言注释 来描述希望代码执行的功能。 可以选择通过接受建议的代码来使用它。

下图显示了 Visual Studio 中 GitHub Copilot 的代码生成功能。 在此示例中,你在代码文件中添加自然语言注释,GitHub Copilot 会为你生成灰色文本的代码建议。 如果选择使用代码,则可以选择 Tab 以将其插入代码文件中:

在这里插入图片描述

开始使用 Visual Studio 中的 GitHub Copilot 完成。 请注意,它需要 Visual Studio 2022 17.8 或更高版本。

Visual Studio 中的 GitHub Copilot 聊天是 Visual Studio IDE 中 GitHub Copilot 所提供完全集成的 AI 支持的聊天体验。 它使你能够使用 IDE 中的聊天界面与 GitHub Copilot 交互。 通过以自然语言询问与编码相关的问题,你可以接收特定于上下文的代码建议,深入了解代码块的工作原理、生成单元测试、查找问题并获取建议的修补程序。 它使你能够在不离开 IDE 的情况下获取编码信息和支持,帮助你做出明智的决策并编写更好的代码。

下图显示了 Visual Studio 中 GitHub Copilot Chat 的聊天窗口和内联(交互式代码助手询问 Copilot)视图。 在此示例中,你询问 Copilot 使用聊天窗口或交互式代码助手生成测试函数。 如果 Copilot Chat 提供要使用的代码建议,则可以接受将代码插入代码文件中:

在这里插入图片描述


所有 GitHub Copilot for Individuals 用户都可以访问 GitHub Copilot Chat。 了解详细信息。 所有 GitHub Copilot for Business 都有权访问有限的 GitHub Copilot Chat beta 版本。 了解详细信息。

2.2 Visual Studio 中的 IntelliCode

IntelliCode 利用代码上下文,结合从成千上万个公共开源代码中学习到的模式,为 IntelliSense 提供 AI 驱动的增强功能,包括建议、上下文感知的代码完成、整行完成和 API 使用示例。 通过使用人工智能,IntelliCode 利用你当前的代码上下文和模式,动态地将建议排列在完成列表的顶部,并在其旁边标注星形图标,从而帮助你更快地编写出准确的代码。

下图显示了 Visual Studio 中的 IntelliCode 完成:

在这里插入图片描述

2.3 功能对比 🆚

下表比较了 GitHub Copilot(和 GitHub Copilot Chat)和 IntelliCode 的功能。

在这里插入图片描述


看了对比真的好难抉择啊,怎么办?

在这里插入图片描述

可以将 GitHub CopilotIntelliCode 一起使用。 无需在它们之间进行选择。

三、总结🎯

这只是 AI 辅助开发系列的开篇文章,后续会更具体的介绍如何使用。请点赞关注持续留意后续文章。💕


🎀🎀🎀【AI辅助编程系列】🎀🎀🎀

  1. Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码
  2. Visual Studio 安装和管理 GitHub Copilot
  3. Visual Studio 使用 GitHub Copilot 扩展
  4. Visual Studio 使用 GitHub Copilot 聊天
  5. Visual Studio 使用 GitHub Copilot 协助调试
  6. Visual Studio 使用 IntelliCode AI 辅助代码开发
  7. Visual Studio 玩转 IntelliCode AI辅助开发

Read more

优选算法——滑动窗口2

优选算法——滑动窗口2

优选算法——滑动窗口 1.1004. 最大连续1的个数 III 题目描述 思路分析 这道题的核心是:找一个最长的子数组,其中最多包含 k 个 0。 经典的 滑动窗口 问题。 为什么用滑动窗口? * 我们需要连续区间 → 滑动窗口天然适合 * 窗口内维护「0 的个数 ≤ k」这个约束 * 窗口扩张:右指针右移,遇到 0 就计数 * 窗口收缩:当 0 的个数超过 k,左指针右移直到满足条件 算法流程 1. 初始化:left = 0, zeroCount = 0, maxLen = 0 2. 遍历数组,right 指针右移: -

《算法题讲解指南:优选算法-位运算》--35.两个整数之和,36.只出现一次的数字 ||,37.消失的两个数字

《算法题讲解指南:优选算法-位运算》--35.两个整数之和,36.只出现一次的数字 ||,37.消失的两个数字

🔥小叶-duck:个人主页 ❄️个人专栏:《Data-Structure-Learning》 《C++入门到进阶&自我学习过程记录》《算法题讲解指南》--从优选到贪心 ✨未择之路,不须回头 已择之路,纵是荆棘遍野,亦作花海遨游 目录 35.两个整数之和 题目链接: 题目描述: 题目示例: 解法(位运算): 算法思路: C++算法代码: 算法总结及流程解析: 36.只出现一次的数字 || 题目链接: 题目描述: 题目示例: 解法(比特位计数): 算法思路: C++算法代码: 算法总结及流程解析: 38. 消失的两个数字 题目链接: 题目描述: 题目示例: 解法(位运算): 算法思路: C++算法代码: 算法总结及流程解析: 结束语

动态规划 路径类 DP 入门:3 道经典例题(最小路径和 + 迷雾森林 + 过河卒)全解析

动态规划 路径类 DP 入门:3 道经典例题(最小路径和 + 迷雾森林 + 过河卒)全解析

文章目录 * 矩阵的最小路径和 * 迷雾森林 * 过河卒 路径类 dp 是线性 dp 的⼀种,它是在⼀个 n × m 的矩阵中设置⼀个⾏⾛规则,研究从起点⾛到终点的 ⽅案数、最⼩路径和或者最⼤路径和等等的问题。 ⼊⻔阶段的《数字三⻆形》其实就是路径类 dp。 矩阵的最小路径和 题目描述 题目解析 1、状态表示 dp[i][j]表示从[1 1]格子走到[i j]格子时,所有方案下的最小路径和。 2、状态转移方程 我们还是以最后一步来推导状态转移方程,走到最后一个格子dp[n][m]

【动态规划】B4336 [中山市赛 2023] 永别|普及+

【动态规划】B4336 [中山市赛 2023] 永别|普及+

B4336 [中山市赛 2023] 永别 题目描述 你做了一个梦,梦里有一个字符串,这个字符串无论正着读还是倒着读都是一样的,例如: a b c b a \tt abcba abcba 就符合这个条件。 但是你醒来时不记得梦中的字符串是什么,只记得它是另一个字符串 S S S 的子序列,你想知道梦中字符串最长是多少。 提示:字符串 A A A 是字符串 B B B 的子序列当且仅当从 B B B 中删除若干个字符(可以不删)后可以变成 A A A。例如: a c d \tt acd