Featured image of post 体验GitHub Copilot Labs:探索AI在编程领域的无限可能

体验GitHub Copilot Labs:探索AI在编程领域的无限可能

又一篇用new bing写的文章,体验Github推出的AI辅助编程工具,结尾真·感想

GitHub Copilot Labs

GitHub Copilot是一个基于人工智能的编程助手,它可以根据你输入的代码、注释、变量名等信息,自动给出可能符合你意图的代码建议。它可以帮助你快速完成各种编程任务,从简单的函数定义到复杂的算法实现。

GitHub Copilot Labs是一个与GitHub Copilot配套使用的VS Code扩展插件,它提供了一些实验性的功能,用来探索人工智能在编程领域的更多可能性。目前有四个功能可用:explain、translate、IDE Brushes和test generation,目前我只体验了前两个功能。

安装和使用

要使用GitHub Copilot Labs,首先需要安装VS Code,并且拥有一个GitHub Copilot许可证。如果你还没有许可证,可以在这里申请一个免费试用或付费购买。

然后,在VS Code的扩展市场中搜索并安装“Copilot Labs”这个插件。安装完成后,你会看到VS Code侧边栏上出现了一个Copilot图标。点击这个图标,就可以打开Copilot Labs面板,并看到四个不同的功能选项卡。

explain功能:解释代码

explain功能是用来帮助你理解代码的含义和作用的。当你选中一段代码,并按下 Ctrl+Shift+P(Windows/Linux)Command+Shift+P(Mac) 打开命令面板时,你可以输入 Copilot: Explain 来激活这个功能。然后,在弹出的对话框中输入一个问题,比如 what does this code do?how to use this function? 等等。Copilot会尝试根据选中的代码给出一个简洁明了的回答,类似于一个教程或文档。你可以通过点击 Ask Copilot 按钮来重复这个过程,直到你满意为止。

当然也有更直观的操作方式,如图,只需选中一段代码,在左侧栏中即可点击 Ask Copilot 按钮:

explain界面

explain功能示例

  • Python:如何使用factorial函数
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# Explain code: how to use this function?
def factorial(n):
  if n == 0:
    return 1
  else:
    return n * factorial(n-1)

# Copilot answer:
"""
This function calculates the factorial of a given number n. The factorial of n is defined as the product of all positive integers from 1 to n. For example, factorial(5) = 5 * 4 * 3 * 2 * 1 = 120.

To use this function, you can call it with an argument that is a non-negative integer. For example:
"""
print(factorial(5)) # prints 120
print(factorial(0)) # prints 1
print(factorial(-1)) # raises an exception
  • JavaScript:如何反转字符串
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
// Explain code: what does this code do?
function reverseString(str) {
    let reversed = "";
    for (let i = str.length - 1; i >= 0; i--) {
        reversed += str[i];
    }
    return reversed;
}

// Copilot answer:

This code defines a function named reverseString that takes a string as an argument and returns a new string that is the reverse of the original one. For example, reverseString("hello") returns "olleh".

The function uses a for loop to iterate over the characters of the input string from the end to the beginning, and concatenates them to a variable named reversed. At the end of the loop, reversed contains the reversed string, which is returned by the function.

translate功能:翻译代码

translate功能是用来帮助你把代码从一种编程语言翻译成另一种编程语言的。当你选中一段代码,并按下 Ctrl+Shift+P(Windows/Linux)Command+Shift+P(Mac) 打开命令面板时,你可以输入 Copilot: Translate 来激活这个功能。然后,在弹出的对话框中选择你想要翻译成的目标语言,比如Python、Ruby、Java等等。Copilot会尝试根据选中的代码生成等价的代码,并显示在编辑器右侧的小窗口中。你可以按下Tab键或点击小窗口来接受Copilot生成的代码,也可以按下Esc键或点击其他地方来忽略它。

类似地,只需选中一段代码,在左侧栏中即可点击 Ask Copilot 按钮来转换代码:

language translation界面

translate功能示例

  • Python到Rust:计算阶乘
1
2
3
4
5
6
# Translate code into: Rust
def factorial(n):
  if n == 0:
    return 1
  else:
    return n * factorial(n-1)
1
2
3
4
5
6
7
8
// Copilot answer:
fn factorial(n: i32) -> i32 {
    if n == 0 {
        1
    } else {
        n * factorial(n - 1)
    }
}
  • JavaScript到C#:反转字符串
1
2
3
4
5
6
7
8
// Translate code into: C#
function reverseString(str) {
    let reversed = "";
    for (let i = str.length - 1; i >= 0; i--) {
        reversed += str[i];
    }
    return reversed;
}
1
2
3
4
5
6
7
8
// Copilot answer:
string reverseString(string str) {
    string reversed = "";
    for (int i = str.Length - 1; i >= 0; i--) {
        reversed += str[i];
    }
    return reversed;
}

体验感想

使用GitHub Copilot Labs一段时间后,我觉得它是一个非常棒的工具,能够给我带来很多编程上的便利和帮助。它让我写代码更快更轻松,理解代码更容易更深入,修改代码更直观更灵活,测试代码更方便更有效。它也让我有机会学习和尝试一些新的编程语言和框架,增加我的知识和技能。

当然,GitHub Copilot Labs也不是万能的,它还有一些需要改进和完善的地方。比如:

  • 它需要联网才能工作,如果网络出现问题或中断,就无法获得代码建议。
  • 它不能保证生成的代码都是正确、安全、高效、规范的,需要我们自己检查和验证。
  • 它不能取代我们作为程序员的创造力、逻辑思维、问题解决能力等核心素质。

所以,我认为GitHub Copilot Labs是一个很好的辅助工具,但不是一个替代工具。它可以节省我们的时间和精力,但不能代替我们的主观判断和责任意识。我们应该合理地使用它,并且不断地学习和进步。

总之,我非常喜欢GitHub Copilot Labs,并且期待它未来能够发展得更好。我也建议你试一试这个工具,并且分享你自己的反馈和意见。让我们一起探索人工智能在编程领域的更多可能性吧!

真·感想

作为一个程序员,体验过new bing和copilot之后,确实感觉到时代变了,AI距离实用越来越近了。就拿 new bing 来说,我现在遇到一些问题就想先问问它,很大概率它能帮我解决。再看copilot,我只试用了几天就离不开它的便利性了,而且随着你熟悉了用法,会觉得它越用越好用,确实提升了工作效率。

当然啦,这两个工具也不是万能神器,还有很多地方需要我们自己动脑子和创新。我觉得AI不是要抢我们的饭碗,而是要做我们的小帮手。我们应该好好利用AI的优势来提高我们的生活和工作质量,并且对AI保持理性和负责。

Built with Hugo
主题 StackJimmy 设计