cursor测评, 编程助手大揭秘

前言

本篇blog为大家带来最近比较火热的cursor编程助手的使用体验, 主要从本人近期使用发现cursor的特点, 优点与缺点, 以及与其他编程助手之间的区别进行展开描述.

cursor使用

安装使用

首先登录官网,进行下载 链接
下载完成之后进行登录

此处为下载登录完成之后的结果演示, 按下Continue继续~~在这里插入图片描述
然后打开软件
在这里插入图片描述

在进入cursor界面之后, 因为我们在安装页面选择了VS Code, 所以打开软件之后, 默认是将上次VS Code的文件执行结果进行打开, 一种很熟悉的感觉, 完全就是VS Code的感觉, 而且配置在VS Code的插件也回一同加载进来. 可以看到这个软件对勾选Vs Code安装这一选项的用户很友好. 不过, 中文显示还是有点问题, 只需要将这个中文插件卸载重装即可, 这边就不再演示.

使用说明

打开软件进行正常编码时, 与正常编码一样, 也和其他编程助手一样, 会智能提示代码不补全功能. 更重要的是, 第一次在代码代码补全的功能就给我的感觉是比其他编程助手要好很多的, 而且像正常的缩进之类的书写很规范.
在这里插入图片描述
cursor还支持不同的模型为你提供代码的生成, 操作步骤如图
在这里插入图片描述不过需要注意的是, 像一些收费的模型(像chat - 4, claude - 3等)目前想使用就必须要提供对应公司的key, 也就是要想体验更好的软件生态, 必须要付费. 如果不是有特殊需求, 目前的功能完全够用.

cursor测试

现在, 创建一个头文件来测试cursor的能力
当我们创建一个头文件为Tcp_server.hpp来模拟我们的服务器代码编写时, 根据大模型的自动推理, 就已经帮我们生成了整体的业务框架. 我在这边是只创建了一个.hpp头文件, 一个空白文件, 什么内容都没有, 而cursor只根据这个文件名称就生成了这么多, 这恐怕是目前其他的编码助手无法比拟的.
在这里插入图片描述

比较

当我想用QWen进行比较的时候, 可以看到如下的生成内容
在这里插入图片描述
可以看到, 在内容丰富度方面是cursor好一点, 提供了较多的函数接口, 用于内容的填充.

当我想继续向下时, cursor更是让我惊讶!
以下是cursor的全部生成内容:

#ifndef TCP_SERVER_HPP
#define TCP_SERVER_HPP

#include <boost/asio.hpp>
#include <iostream>

class Tcp_server {
public:
    Tcp_server(boost::asio::io_context& io_context, short port);
    ~Tcp_server();
    void start();
    void do_accept();
    void do_read();
    void do_write(std::size_t length);

private:
    boost::asio::io_context& io_context_;
    boost::asio::ip::tcp::acceptor acceptor_;
    boost::asio::ip::tcp::socket socket_;
    std::array<char, 1024> buffer_;
};

#endif // TCP_SERVER_HPP
#include "Tcp_server.hpp"

Tcp_server::Tcp_server(boost::asio::io_context& io_context, short port)
    : io_context_(io_context)
    , acceptor_(io_context, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), port))
    , socket_(io_context)
{
    std::cout <<"Tcp_server::Tcp_server" << std::endl;
    do_accept();
}

Tcp_server::~Tcp_server()
{
    std::cout << "Tcp_server::~Tcp_server" << std::endl;
}

cp_server::Tcp_server(boost::asio::io_context& io_context, short port)
    : io_context_(io_context),
      acceptor_(io_context, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), port)),
      socket_(io_context) {
    do_accept();
}

Tcp_server::~Tcp_server() {
    std::cout << "Tcp_server destructor called" << std::endl;
}

void Tcp_server::start() {
    do_accept();
}

void Tcp_server::do_accept() {
    acceptor_.async_accept(socket_, [this](boost::system::error_code ec) {
        if (!ec) {
            std::cout << "New client connected" << std::endl;
            do_read();
        } else {
            std::cerr << "Error: " << ec.message() << std::endl;
        }
    });
}

void Tcp_server::do_read() {
    auto self(shared_from_this());
    boost::asio::async_read(socket_, boost::asio::buffer(buffer_),
        [this, self](boost::system::error_code ec, std::size_t length) {
            if (!ec) {
                do_write(length);
            } else {
                std::cerr << "Error: " << ec.message() << std::endl;
            }
        });
}
void Tcp_server::do_write(std::size_t length) {
    auto self(shared_from_this());
}
void Tcp_server::do_write(std::size_t length) {
    auto self(shared_from_this());
    boost::asio::async_write(socket_, boost::asio::buffer(buffer_, length),
        [this, self](boost::system::error_code ec, std::size_t /*length*/) {
            if (!ec) {
                do_read();
            } else {
                std::cerr << "Error: " << ec.message() << std::endl;
            }
        });
}

可以看到, 对应的内容是全部都生成, 而再看QWen:
在这里插入图片描述

到了start后, 就不动了, 后续也没有内容的输出

可以说是cursor非常强悍, 未来可能真的就是AI的天下了

创作不易, 欢迎三连, 有问题可私~~

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温有情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值