如何使用基于GPT-4的Cursor编辑器提升开发效率
程序员最恨两件事情:一是别人代码不写文档,二是要让自己写文档。随着 GPT-4 的到来这些都不是问题了,顺带可能连程序员都解决了。。。
之前一直觉得 AI 生成的代码也就写个面试题的水平,小打小闹,现在时代可变了。Cursor 编辑器是 GPT-4 驱动,对接了 GitHub 的 Copilot。本文列举了几个他能完全掌控的场景,就看你慌不慌
文章目录
- 一、代码审查
- 二、补充文档
- 三、补充单测
- 四、补充定义
- 五、生成通用代码
- 六、总结
官网: https://www.cursor.so/
一、代码审查
他能看懂你的代码,并能指出错误!!!也就是说他的编程水平是高于你的!毕竟基于 GitHub 的海量代码训练出来的,Code Review 从此有了个好老师
- 源码:我们从网上找了个常见的金额处理函数,并删掉一些边界条件看看能不能发现问题

const formatMoney = (money, symbol = "", decimals = 2) => {let arr = money.toFixed(decimals).toString().split(".");let first = parseInt(arr[0]).toLocaleString();let result = [first, arr[1]].join(".");return `${symbol} ${money.toFixed(decimals)}`;
};formatMoney(12341234.246); // 12,341,234.25
formatMoney(12341234.246, "¥", 1); // ¥ 12,341,234.2
- 输入指令:分析 formatMoney 函数的入参风险,中文回答
- 效果:询问被修改的函数风险能准确回答,并给出改进方法

- 输入指令:分析这个文件并给出优化建议
- 效果:能清晰的识别 3 个函数的作用,并能给出建议

二、补充文档
程序员最恨两件事情:一是别人代码不写文档,二是要让自己写文档。现在这都不是问题了,在不写一行中文注释的情况下,生成完整的文档不在话下
- 输入指令:补充这个文件的中文markdown,包含使用说明、场景说明、注意事项、代码示范等

- 效果:markdown 渲染效果如下

三、补充单测
- 输入指令:给上面函数补充完整的单元测试,考虑各种边界条件

- 效果:瞬间生成单测,并能覆盖各种边界和极端情况,极大的提高代码质量
test("formatMoney should format money correctly", () => {expect(formatMoney(12341234.246)).toBe(" 12341234.25");expect(formatMoney(12341234.246, "¥", 1)).toBe("¥ 12341234.2");expect(formatMoney(0)).toBe(" 0.00");expect(formatMoney(0.1)).toBe(" 0.10");expect(formatMoney(0.005)).toBe(" 0.01");expect(formatMoney(9999999999.999)).toBe(" 9999999999.99");
});test("fenToYuan should convert fen to yuan correctly", () => {expect(fenToYuan(123456)).toBe("1234.56");expect(fenToYuan(0)).toBe("0.00");expect(fenToYuan("123456")).toBe("1234.56");expect(fenToYuan("0")).toBe("0.00");
});test("yuanToFen should convert yuan to fen correctly", () => {expect(yuanToFen(12.34)).toBe("1234");expect(yuanToFen(0)).toBe("0");expect(yuanToFen("12.34")).toBe("1234");expect(yuanToFen("0")).toBe("0");
});
test("formatMoney should handle negative numbers correctly", () => {expect(formatMoney(-1234.5678)).toBe("- 1234.57");expect(formatMoney(-1234.5678, "¥", 1)).toBe("-¥ 1234.6");expect(formatMoney(-0.1)).toBe("- 0.10");expect(formatMoney(-0.005)).toBe("- 0.01");expect(formatMoney(-9999999999.999)).toBe("- 9999999999.99");
});test("fenToYuan should handle negative numbers correctly", () => {expect(fenToYuan(-123456)).toBe("-1234.56");expect(fenToYuan("-123456")).toBe("-1234.56");
});test("yuanToFen should handle negative numbers correctly", () => {expect(yuanToFen(-12.34)).toBe("-1234");expect(yuanToFen("-12.34")).toBe("-1234");
});
四、补充定义
- 指令:补充formatMoney函数的interface
- 效果:可快速生成 interface

五、生成通用代码
- 目标:我们提前定义一个树状的菜单结构
tree,然后让 AI 根据字段和属性自动生成可投产面包屑组件 - 指令:生成一个面包屑组件,入参是tree和当前路由
- 效果:可迅速生成高质量可运行的面包屑组件,自动分析 tree 的数据格式,并生成递归查找路径的函数

const tree = [{name: '首页',route: '/',},{name: '个人中心',route: '/home',children: [{name: '我的订单',route: '/order',children: [{name: '未收货',route: '/undo',},{name: '已收货',route: '/done',}]},{name: '我的地址',route: '/address',children: [{name: '首页',route: '/',}]}]}
]
const Breadcrumb = ({ tree, currentRoute }) => {const breadcrumbList = [];const findRoute = (tree, currentRoute) => {for (let i = 0; i < tree.length; i++) {const node = tree[i];if (node.route === currentRoute) {breadcrumbList.push(node.name);return true;} else if (node.children) {if (findRoute(node.children, currentRoute)) {breadcrumbList.push(node.name);return true;}}}return false;};findRoute(tree, currentRoute);return (<div>{breadcrumbList.reverse().map((item, index) => (<span key={index}>{item}{index !== breadcrumbList.length - 1 && ' > '}</span>))}</div>);
};<Breadcrumb tree={tree} currentRoute={'/home/order/undo'} />
六、总结
-
最后来一段视频完整的回顾一下效果
使用基于GPT-4的Cursor编辑器自动生成代码
-
本文给出的例子其实都比较简单,真正打开生产环境的复杂业务逻辑代码照样都能分析的头头是道,这里主要是红线问题不能使用业务代码作为示范。
-
现阶段看起辅助作用是完全没问题的,真正实现了人机结对编程,目测已经可以取代 30% 左右的重复低水平劳动。这还是在没有完整阅读业务仓库代码和 PRD 的基础上做到的,如果以公司粒度投喂更多的业务知识和已有代码,以及后面的技术升级,那能干的活的比例肯定是越来越高的。
-
AI 的奇点真的快来了,有生之年肯定是能看到这样的盛况了,是福是祸只能拥抱变化了吧!
相关文章:
如何使用基于GPT-4的Cursor编辑器提升开发效率
程序员最恨两件事情:一是别人代码不写文档,二是要让自己写文档。随着 GPT-4 的到来这些都不是问题了,顺带可能连程序员都解决了。。。 之前一直觉得 AI 生成的代码也就写个面试题的水平,小打小闹,现在时代可变了。Curs…...
压箱底教程分享,手把手教会你如何注册target账号和下单
喜欢套利的朋友肯定都认识target这个平台吧,它是美国热门的综合性海淘网站之一。东哥近日收到私信有朋友向我请教在注册target账号时遇到的一些问题,所以今天东哥想跟大家分享的就是就是target账号注册教程和下单流程,让也想注册target账号的…...
一次性搞懂dBSPL、dBm、dBu、dBV、dBFS的区别!
相信学习音乐制作的同学在混音阶段经常会碰到各种关于声音的单位,其中最具代表性的可能就是分贝家族的单位了,如dBSPL、dBm、dBu、dBV、dBFS等。 那么,这些单位分别表示什么,又有什么区别呢? 描述声音信号强弱的单位…...
漂亮实用的15个脑图模板,你知道哪些是AI做的吗?
对于很多第一次接触到思维导图的朋友,看到软件的时候往往找不到方向,不知道如何创作? 今天大家的好助手来了。 一是有大量的思维导图模板,大家看着模板做,慢慢就会做了。 二是ProcessOn 思维导图已经可以用AI 做思维…...
历代程序员都无法逃脱的诅咒 -- 低代码
1764年5月4日星期四 愤怒的纺织工人 纵火烧毁了哈格里夫斯的家 因为他发明的珍妮纺织机 让很多当地的手工纺织工人失业了 这也被认为是第一次工业革命的开端 由于事发的星期四 所以这一事件也被称作疯狂星期四 类似的变革 也一次次的出现在软件行业 他是历代程序员都无法逃脱的…...
14Exceptional Control Flow Exceptions and Process(异常控制流,异常和进程)
异常控制流 异常控制流出现的地方: 异常控制流(Exceptional Control Flow,ECF)是程序执行过程中由于某些特殊事件或条件而导致的控制流的改变。异常控制流通常出现在以下几种情况: 硬件异常和中断:硬件异…...
LeetCode - 两数之和
题目信息 源地址:两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不…...
Python 小型项目大全 31~35
三十一、猜数字 原文:http://inventwithpython.com/bigbookpython/project31.html 猜数字是初学者练习基本编程技术的经典游戏。在这个游戏中,电脑会想到一个介于 1 到 100 之间的随机数。玩家有 10 次机会猜出数字。每次猜中后,电脑会告诉玩…...
他又赚了一万美金
有一些学员真的挺能干的,收了一万刀,感到欣慰,毕竟在国外lead这条路,有很多人被骗,也有很多人赚钱。 但是大部分人跟着某一些所谓的大佬,最后自己却不动手操作。 从一开始怕跟我学习,到最后选…...
企业工程项目管理系统+spring cloud 系统管理+java 系统设置+二次开发
工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…...
教你使用Apache搭建Http
Apache2默认采用的是80端口号,因此直接通过公网ip或域名就能访问。现实中,很多服务器本身就部署了许多其它服务,80端口号往往被占用,因此就需要将Apache2改成其它访问端口。 修改端口,首先需要修改/etc/apache2/ports…...
ZooKeeper+Kafka+ELK+Filebeat集群搭建实现大批量日志收集和展示
文章目录一、集群环境准备二、搭建 ZooKeeper 集群和配置三、搭建 Kafka 集群对接zk四、搭建 ES 集群和配置五、部署 Logstash 消费 Kafka数据写入至ES六、部署 Filebeat 收集日志七、安装 Kibana 展示日志信息一、集群环境准备 1.1 因为资源原因这里我就暂时先一台机器部署多…...
数据结构初阶 - 总结
-0- 数据结构前言 什么是数据结构 什么是算法 数据结构和算法的重要性-1- 时间复杂度和空间复杂度 👉数据结构 -1- 时间复杂度和空间复杂度 | C 算法效率 时间复杂度大O的渐进表示法eg 空间复杂度 常见复杂度对比OJ 消失的数组 轮转数组-2- 顺序表 与 链表 &am…...
代码随想录算法训练营第四十四天-动态规划6|518. 零钱兑换 II ,377. 组合总和 Ⅳ (遍历顺序决定是排列还是组合)
如果求组合数就是外层for循环遍历物品,内层for遍历背包。 如果求排列数就是外层for遍历背包,内层for循环遍历物品。 求物品可以重复使用时,最好是用一维数组,会比较方便。二维数组不想思考了,二维还是用在01背吧吧。…...
wma格式怎么转换mp3,4种方法超快学
其实我们在任何电子设备上所获取的音频文件都具有自己的格式,每种格式又对应着自己的属性特点。比如wma就是一种音质优于MP3的音频格式,虽然很多小伙伴比较青睐于wma所具有的音质效果,但也不得不去考虑因wma自身兼容性而引起很多播放器不能支…...
【数据结构与算法】判定给定的字符向量是否为回文算法
题目: Qestion: 试写一个算法判定给定的字符向量是否为回文。 回文解释: 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。 主要思路: 因为数据要求不是很严格并且是一个比较简单的…...
考研数二第十七讲 反常积分与反常积分之欧拉-泊松(Euler-Poisson)积分
反常积分 反常积分又叫广义积分,是对普通定积分的推广,指含有无穷上限/下限,或者被积函数含有瑕点的积分,前者称为无穷限广义积分,后者称为瑕积分(又称无界函数的反常积分)。 含有无穷上限/下…...
【论文总结】理解和减轻IoT消息协议的安全风险
理解和减轻IoT消息协议的安全风险介绍概述前置知识威胁模型MQTT IoT通信安全分析未授权的MQTT消息未授权的Will消息未经授权的保留消息MQTT会话管理故障未更新的会话订阅状态未更新的会话生命周期状态未经身份验证的 MQTT 身份客户端id劫持MQTT Topics的授权MQTT Topic不安全的…...
SpringBoot基础入门
一、概述 Spring Boot是一个开源的Java框架,它是基于Spring框架的基础之上创建的。Spring Boot可以帮助开发人员更快地创建Spring应用程序,并以最小的配置要求来运行它们。Spring Boot可以用于构建各种类型的应用程序,包括Web应用程序、RESTful API、批处理作业、消息传递应…...
jar 包与 war 包区别
1、war是一个web模块,其中需要包括WEB-INF,是可以直接运行的WEB模块;jar一般只是包括一些class文件,在声明了Main_class之后是可以用java命令运行的。 2、war包是做好一个web应用后,通常是网站,打成包部署…...
AI智能体记忆框架:向量化存储与混合检索技术解析
1. 项目概述:一个面向AI智能体的记忆与检索框架最近在折腾AI应用开发,特别是智能体(Agent)方向,发现一个挺有意思的痛点:如何让智能体拥有“记忆”?不是那种简单的对话历史记录,而是…...
Arm Neoverse CMN-700架构与寄存器配置详解
1. Arm Neoverse CMN-700架构概览在现代多核处理器设计中,如何高效实现缓存一致性一直是核心挑战。Arm Neoverse CMN-700(Coherent Mesh Network)作为第二代一致性网格网络IP,采用分布式架构解决了从16核到256核规模的数据一致性问…...
基于CircuitPython的Fruit Jam OS:在RP2350上构建复古微型计算机系统
1. 项目概述:当复古计算精神遇见现代微控制器如果你和我一样,对早期个人计算机那种开机即用、一切尽在掌控的纯粹体验抱有怀念,同时又痴迷于现代开源硬件带来的无限可能,那么Fruit Jam OS绝对是一个会让你眼前一亮的项目。它不是一…...
555定时器深度解析:从RC电路到三种工作模式的原理与应用
1. 项目概述在电子设计的工具箱里,有那么几颗芯片,你几乎可以在任何时代的电路板上找到它们的身影。它们可能不是性能最强的,但一定是应用最广、最经久不衰的。今天要聊的555定时器,就是这样一个“活化石”级别的存在。自上世纪70…...
Sunshine游戏串流实战:从零搭建你的专属云游戏平台
Sunshine游戏串流实战:从零搭建你的专属云游戏平台 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否曾经梦想过在客厅电视上畅玩PC游戏,或者想在出差时…...
Cadence Allegro铺铜实战:从动态避让到静态优化,我的多层板效率提升心得
Cadence Allegro铺铜实战:从动态避让到静态优化,我的多层板效率提升心得 在高速PCB设计领域,Cadence Allegro作为行业标准工具,其铺铜功能直接影响设计效率与产品质量。当板层超过8层、元件密度突破500pin/inch时,动态…...
GetQzonehistory终极指南:三步快速备份QQ空间全部历史说说
GetQzonehistory终极指南:三步快速备份QQ空间全部历史说说 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字记忆时代,QQ空间承载了无数用户的青春回忆和成长…...
Midjourney等距视角风格落地全栈手册(附NASA航天器建模级参数配置表)
更多请点击: https://intelliparadigm.com 第一章:Midjourney等距视角风格的本质与视觉范式 等距视角(Isometric Perspective)在 Midjourney 中并非原生渲染模式,而是通过提示词工程、参数约束与构图引导共同构建的视…...
嵌入式TFT屏幕LVGL驱动适配:从硬件抽象到性能优化的全流程实践
1. 项目概述与核心价值最近在几个嵌入式显示项目里,我深度折腾了TFT屏幕与LVGL的适配工作。这活儿听起来像是把两个现成的轮子装到一起,但真上手了才发现,从点亮屏幕到丝滑流畅的UI交互,中间隔着不少“坑”。如果你也在为STM32、E…...
AutoHotkey V2扩展库:解决Windows自动化开发痛点的完整解决方案
AutoHotkey V2扩展库:解决Windows自动化开发痛点的完整解决方案 【免费下载链接】ahk2_lib 项目地址: https://gitcode.com/gh_mirrors/ah/ahk2_lib AutoHotkey V2扩展库ahk2_lib为Windows自动化开发提供了从简单脚本到专业应用的完整技术栈,通过…...
