程序员最恨两件事情:一是别人代码不写文档,二是要让自己写文档。随着 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编辑器提升开发效率相关推荐

  1. 开源:一款基于.Net开发提升开发效率的强大多功能工具箱

    公众号回复[1024],免费领取2个T的程序员干货大礼包.

  2. 闲鱼前端基于serverless的一种多端开发解决方案

    前端的发展太快了,前端框架和技术的发展也层出不穷,还包括不同智能设备的出现,对前端开发同学来说是个很大的跳转,简单列举下: 前端框架:vue.react.angular 小程序:微信小程序.支付宝小程 ...

  3. 基于Django+Layui的组件化基础开发平台

    项目介绍 一款 Python 语言基于Django.Layui.MySQL等框架精心打造的一款模块化.高性能.企业级的敏捷开发框架,本着简化开发.提升开发效率的初衷触发,框架自研了一套个性化的组件,实 ...

  4. 20个最强的基于浏览器的在线代码编辑器 - OPEN资讯

    20个最强的基于浏览器的在线代码编辑器 - OPEN资讯 20个最强的基于浏览器的在线代码编辑器

  5. 基于VUE3的电子病历编辑器

    基于VUE3的富文本编辑器,可同时实现医疗时间轴,电子病历编辑器,随访表单的设计与生成. 目前市面上的富文本编辑器大致可以分为三类 1.基于contenteditable 2.基于canvas 3.基 ...

  6. 基于GPT模型的对话系统

    基于GPT模型的对话系统 1.场景: 2.模型的选择: 3.GPT-2模型详解: 1.场景: 当用户输入的问题在库中,没有比对上,则调用闲聊系统来回答用户的问题 2.模型的选择: 模型:LSTM, G ...

  7. 基于webassembly的前端视频编辑器(未写完)

    基于webassembly的前端视频编辑器 (这是2020年8月5日写好的草稿,2021年9月9日才想起来还有这个草稿没发,今天登上网站才发现有人在2021年6月给我发了私信问assembly相关问题 ...

  8. 基于jQuery的富文本编辑器summernote插件的使用教程

    基于jQuery的富文本编辑器summernote插件的使用教程 基于jQuery的富文本编辑器summernote插件的使用教程 一:最近项目中遇到使用富文本编辑器的功能, JQuery的富文本编辑 ...

  9. 基于WebAssembly的前端视频编辑器设计与实现(个人毕设论文删改)

    前言: 本来想通过一篇更精简通俗易懂的博文讲述的,但是写到一半发现要讲的东西太多,于是太监了,因此我把个人毕设做了一些删改,把工程源码放在了末尾,发出来供各位参考. (2021年10月8日更新了图片, ...

最新文章

  1. TensorRT Samples: GoogleNet
  2. Vue.js——十分钟入门Vuex
  3. 【Linux】一步一步学Linux——chgrp命令(113)
  4. python函数调用位置_Python: 浅谈函数局部变量快在哪
  5. mysql中的get_lock锁机制解析
  6. svn authz 授权文件模版
  7. XML解组基准:JAXB,STAx,Woodstox
  8. 笔试常见的智力题(附答案)
  9. struts框架学习过程中的问题。
  10. 高精度加法(A+BProblemII)
  11. 图片背景虚化_如何用PPT制作图片虚化背景?
  12. Lesson 2 Create First Qt Program
  13. OSX下解决PIL的IOError: decoder jpeg not available 问题
  14. exchange server 2013 owa界面语言修改为中文
  15. Ubuntu18.04-albert编译安装记录
  16. python怎么用反三角函数_反三角函数怎么用
  17. 微软 smtp 服务器,配置 SMTP 服务器
  18. C#【高级篇】 IntPtr是什么?怎么用?
  19. 呼叫压力测试软件,MyComm呼叫中心压力测试解决方案
  20. 单元素/组件的过渡以及过渡钩子的运用

热门文章

  1. 平安好医生荣膺中国证券金紫荆奖“最佳新经济上市公司奖”
  2. mysql5.7.14安装版教程_MySQL5.7.14-下载安装教程--gt;MySQL数据库语句详细教程
  3. iTunes备份文件在哪?查看iTunes备份文件
  4. windows辅助工具下载地址
  5. 【愚公系列】2022年04月 微信小程序-地图的使用之线聚合
  6. 2023 苹果cms v10酷黑渐变自适应视频模板
  7. 《机器学习》西瓜书课后习题9.4——python实现K-means算法
  8. 史玉柱称营销队伍要扩至2万 占二三线城市
  9. 2020面试题合集之吊打面试官系列(一),kotlin数组性能
  10. PBOC/EMV之电子钱包与电子现金的区别