测试了Copilot辅助编程后,就离不开这个AI工具了

这篇具有很好参考价值的文章主要介绍了测试了Copilot辅助编程后,就离不开这个AI工具了。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

微软用·chatGPT 4· 对·github copilot X·升级后,本是怀着赠热点的心态测试了一下其功能。但 Copilot 智能化程度之高,令我吃惊,两周下来已离开不这个工具了。 下面简单分享一下其使用过程,以及对如何使用好这个工具的个人看法.

1. 安装与注册

IDE开发环境我使用的是 VSCode 与 Visual Studio2022,通过在扩展组件中搜索 github copilot,点击安装即可。 安装完成后,右下角出现copilot 的图标,提醒注册。
copilot主页也有注册入口:https://github.com/features/copilot
注册前需要准备好信用卡,前60天免费,之后是10$/月。
注册完成后,右下角的图标如下,表示已连接成功
测试了Copilot辅助编程后,就离不开这个AI工具了

2. 测试生成 Python 与 C++ 代码的效果

使用 Copilot ,就是用注释语法写出编程要求,可以要求 Copilot 创建1个函数,1个类,或者是语句块,但要写清楚要求。如果函数简单,就一句话写明要求,如果复杂,可以写大致流程简单写出来。 如下
输入注释语句:

# define a function to handle image by opencv,  including operations:  read image, resize image, and draw a circle and put text on image, restore image into a new file. 

回车后,copilot 开始在后台匹配最佳代码,按 Tab键,即弹出淡色字体的建议,再按 Tab键即输入屏幕。
测试了Copilot辅助编程后,就离不开这个AI工具了
Copilot 对1个功能要求,会提共10条建议,按 alt + ] 为下条,alt + [ 为上一条。 也可以打开Copilot窗口再选择合适的建议双击。
如上面的语句生成的代码如下:

def handle_image(filename):
    img = cv2.imread(filename)
    # resize image to 1/4 of original size
    img = cv2.resize(img, (0,0), fx=0.25, fy=0.25)
    # draw a circle on image
    cv2.circle(img, (100, 100), 50, (0, 255, 0), 3)
    # put text on image
    cv2.putText(img, "Hello, I am PyPy", (100, 200), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
    # save image to a new file
    cv2.imwrite('newimage.jpg', img)

更复杂一些的例子,copilot会自动进行分析注释语句。

# define a interface named "Shape" including 2 methods: calc_area, calc_perimeter, inherited from abc.ABC class, inherite by two classes: "Rectangle" and "Circle"  
from abc import ABC, abstractmethod
class Shape(ABC):  
    @abstractmethod
    def calc_area(self):
        pass
    @abstractmethod
    def calc_perimeter(self):
        pass

# generate two subcalsses of Shape: Rectangle and Circle
class Rectangle(Shape):  
    def __init__(self, width, height):
        self._width = width
        self._height = height
    #generate a property named "width"
    @property
    def width(self):
        return self._width
    @width.setter
    def width(self, width):
        self._width = width
    #generate a property named "height"
    @property
    def height(self):
        return self._height
    @height.setter
    def height(self, height):
        self._height = height
        
    def calc_area(self):
        return self.width * self.height
    def calc_perimeter(self):
        return 2 * (self.width + self.height)
# subclass Circle
class Circle(Shape):    
    def __init__(self, radius):
        self.radius = radius
    def calc_area(self):
        return 3.14 * self.radius * self.radius
    def calc_perimeter(self):
        return 2 * 3.14 * self.radius

注册时我设置了“允许copilot 学习我的代码” 选项,所以copilot分析输入要求时,会优先将我自己曾以写过代码推荐出来,也蛮方便的。

# generate a function for asyncio websockets client
async def ws_client(url):
    for i in range(1, 40):
        async with websockets.connect(url) as websocket:
            await websocket.send("Hello, I am PyPy.")
            response = await websocket.recv()
        print(response)
        time.sleep(1)

如果不想让 copilot 学习自己的代码,或者用户项目,可以登录 github 帐号在setting中,将该功能关掉。
测试了Copilot辅助编程后,就离不开这个AI工具了

下面再看生成C++代码的测试
先输入要求:

// generate a function to sort an array 
// of integers in ascending order
// using the bubble sort algorithm, the array is stored as gloabl variable
// and the function is called in main

Copilot 窗口马上给出了完整的代码, 选择accept suggestion


#include <iostream>
using namespace std;

const int SIZE = 10;
int numbers[SIZE] = { 10, 2, 78, 4, 45, 32, 7, 11, 0, 66 };

void sortArray(int [], int);
void showArray(int [], int);

int main()
{
    cout << "The unsorted array is:";
    showArray(numbers, SIZE);
    sortArray(numbers, SIZE);
    cout << "The sorted array is:";
    showArray(numbers, SIZE);
    return 0;
}

void sortArray(int array[], int size)
{
    int temp;
    bool swap;
    do
    {
        swap = false;
        for (int count = 0; count < (size - 1); count++)
        {
            if (array[count] > array[count + 1])
            {
                temp = array[count];
                array[count] = array[count + 1];
                array[count + 1] = temp;
                swap = true;
            }
        }
    } while (swap);
}

void showArray(int array[], int size)
{
    for (int count = 0; count < size; count++)
        cout << array[count] << " ";
    cout << endl;
}

结果还是可以接收的。C++写代码的速度快了不少。

使用技巧:
1)生成函数,写要求时,要写明函数主要功能,参数,返回值。

# generate a function to do XXXX,  parameters include x: int,  y:float,  return the result z: float. 

2)生成类,应写从哪个类继承,拥有哪些属性,方法,构造方法要输入的参数等,属性是否要创建getter, setter等。 如

# create a stack class inheriting deque, override append and pop methods, both operation are done at left side, own atttibutes: length, also generate setter and getter methods
# init method include a len parameter, default value is 10

对前端Javascript, CSS, Vue.js 代码的支持似乎比python还要好。 最近在开发1个MQTT--WebSocket网络协议网关,在Copilot 的帮助下,顺便把前端vue测试页面写好了。

对于 Copilot 对程序员影响的感想

两周使用下来,总的体验,Copilot 非常适合生成函数框架,类框架,自动化测试代码等,对于能用文字表述清楚的任务,生成的代码质量可以接受,关键是效率很高。
再看一下不足,对于复杂任务,还是无法胜任,如线程间通信。其次,对比较新的技术点,Copilot 给出的建议往往不合适。也发现其对于中文的理解,不如英文好。 程序员们看来还要学好英文啊。

Copilot做为编程AI辅助工具,对于日常工作效率的提升,效果还是明显的。用好这个工具,可以让程序员腾出更多时间来思考系统架构、接口、流程、算法、用户交互体验、整合等方面的工作。如果不使用类似的AI工具,时间长了,真可能真的会落后于同行。所以,还是建议熟悉并积极应用此工具。文章来源地址https://www.toymoban.com/news/detail-460474.html

到了这里,关于测试了Copilot辅助编程后,就离不开这个AI工具了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 有哪些工具软件一旦用了就离不开?

    目前,随着科技的快速发展,电脑已经进入了许许多多人的生活 ,在平日的学习、工作和生活里,我们会用的各种各样的强大软件。市面上除了某些大公司开发在强大软件,还有各路大神开发具有某些功能的强大工具,形成百家争鸣的局面。 一款好的工具,能让你效率提升

    2024年02月05日
    浏览(21)
  • 汽车三高试验离不开的远程试验管理平台——TFM

      众所周知,车辆在量产之前都要经过长时间的耐久性试验和多种汽车适应性或法规试验。道路试验就是在汽车上装设测试仪表和施加模拟载荷,并按实际使用条件来进行测试。此外,在实际试验场地和试验时间上也是有一定规定的。企业根据不同的试验要求,需要将试验人

    2024年02月10日
    浏览(17)
  • 生活中离不开无线电,了解无线电管理常识

    一、无线电设备管理规定摘要 为维护空中电波秩序,防止有害干扰,确保无线电频率资源的有效利用保障用户合法权益,严厉打击走私活动,国家信息产业部无线电管理局信部无〔1999〕363号文《关于加强无线电发射设备管理的通告》中对如何加强无线电设备管理作出如下规

    2024年02月05日
    浏览(22)
  • 37_MFC自绘UI你离不开GDI绘图

    GDI (Graphics Device Interface)是图形设备接口的英文缩写,处理Windows程序的图形和图像输出。程序员不需要关心硬件设备及设备驱动,就可以将应用程序的输出转换为硬件设备上的输出,实现应用程序与硬件设备的隔离,大大简化程序开发工作。在Windows操作系统中,图形界面应用

    2024年02月21日
    浏览(19)
  • 【人人都离不开的算法】为年后的春招加把劲吧

    马上又到了春招的季节,你需要问下你自己,算法那一关,你过了吗? 2022年TIOBE年度编程语言排行榜的结果出来了,Python稳居榜首,C++终于超越了Java,上升到第三位。 在之前的几年中,这个榜单的排名也都不尽相同。 前几年Java是比较火的,但最近两年随着人工智能(AI)的

    2024年01月21日
    浏览(19)
  • 有哪些工具软件是一旦用了就离不开的

    在现代社会中,工具软件已经成为我们日常工作和生活的必备品。这些软件通过提供各种功能和服务,帮助我们提高效率、简化工作流程,并且在许多方面大大改变了我们的生活方式。本文将介绍一些在使用过程中让人离不开的工具软件,这些软件不仅满足了我们的各种需求

    2024年02月06日
    浏览(21)
  • VR/AR/XR背后的逻辑?离不开三维引擎相机

    作者:木一 自从Apple Vision Pro问世以来,这款被誉为开启“ 空间计算时代 ”的产品迅速吸引了众多科技博主的深度关注。业界对它的评价褒贬不一,一些人认为它是一款具有里程碑意义的创新产品,而另一些人则认为它不过是众多高质量虚拟现实(VR)产品中的一员。尽管市

    2024年04月12日
    浏览(25)
  • 嗯?大火的ChatGPT和new bing都离不开它?

    概述:本文是对 WhalePaper 向量检索领域第一次直播活动内容的文字版,会对向量检索这个 ChatGPT 和 new bing 都离不开的技术进行介绍,结合了 ChatGPT 以及 new bing 的应用场景进行讲解,相信被标题骗进来的你还真能有所收获的(手动狗头)!本期内容入门友好,对课件进行了一

    2024年02月03日
    浏览(18)
  • idea热部署插件JRebel激活(强烈推荐,试试就离不开了)

    JRebel可以实现在idea中热部署项目,修改后不用重启项目,让开发更丝滑。 JRebel需要激活才可以正常使用。 博主最近在找工作,Java前后端全站工程师一枚,有合适的请帮博主推荐一下 有项目的也可以联系我,感谢感谢 博主在北京 2023-07-04 发 V:y393016244 FileSettingsPlugins 搜索

    2024年02月13日
    浏览(15)
  • 效率与性能并存——离不开 Visual Studio Code 的前端开发与我

    许久不见的软文来啦,今天久违的参与讨论一下这个话题,以此写一篇博客来发表一些我的看法和想法。话题的内容是: 有哪些工具软件是一旦用了就离不开的? 。作为一名前端开发的博主,这次的内容当然也是关于前端的,接触前端也快两年了,有这么一个编译器(工具

    2024年02月05日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包