AI辅助编程:Cursor、RooCode、Github Copilot等初体验

password
icon
AI summary
type
status
date
slug
summary
tags
category
不必恐惧,拥抱变化。

1. 各式AI辅助对比

对比维度
Cursor
CodeGPT
通义灵码
Comate
Copilot
插件简介
基于vscode二开的AI编辑器
开源的IDEA插件,可以对接多种大模型
阿里开发的AI编码插件
百度开发的AI编码插件
GitHub开发的AI编码插件
生成质量(5分最高)
4分 1. 非常理解上下文2. 非常理解提示词3. 场景很全面
3分 1. 可以理解提示词,生成的结果会更加规范一些2. 覆盖场景相对Copilot和通义会差一点,但比Comate好
3分 1. 不理解提示词2. 覆盖的场景很全面3. 要改的相对Copilot多一点
2.5分 1. 不理解提示词2. 覆盖的场景比其它三个要少
3.5分 1. 可以理解提示词,但不是所有的规范都遵循2. 覆盖的场景比其它的全面,生成的代码错误相对较少
操作流程(5分最高,以单元测试为例)
4分 1. 内置提示词(一次配置就好) 2. 无脑 @Codebase+给出要生成的方法名 3. 确定AI生成的内容(确定后会自动创建或写入文件) 4. 切换到IDEA开始修改或执行
2.5分 1. 内置提示词(一次配置就好) 2. 使用@选中文件 3. 给出需要生成的单元测试方法 4. 复制生成好的代码 5. 修改或执行代码
3分 1. 选中代码块右键直接生成 2. 复制生成好的代码 3. 修改或执行代码也可以打开对话框,在对话框输入提示词,选中文件,再给出需要生成的单元测试方法。(但效果并不是很好)
3分 1. 选中代码块右键直接生成 2. 复制生成好的代码3. 修改或执行代码也可以打开对话框,在对话框里面选择【知识】,再选择 【文件】,再给出需要生成的单元测试方法。(但效果并不是很好)
5分 1. 打开对话框,输入提示词 2. 选中相关的文件 3. 给出需要生成的单元测试方法 4. 复制生成好的代码5. 修改或执行代码
是否支持集成测试
支持的很好,都可以从别的单元测试里面拿到数据库的id
支持
生成的测试不是很好,会出现方法模拟错误和参数错误的情况
需要每次都先给样例模板才可以生成集成测试,生成的结果会有很多无用的代码
支持
生成速度
很快
很快
不太稳定,有时候快,有时候慢
扩展性
1. 支持编辑器提示词2. 支持单个项目提示词
内置提示词
1. 无法内置提示词2. 对话框输入提示词理解不好
1. 无法内置提示词2. 对话框输入提示词理解不好
可以理解提示词,需要每次对话都要先发一遍
成本/费用
20$/月但可以一直注册账号、或用插件薅羊毛
想要正常使用都必须要买 API keyeg:通义的模型调用-输入¥0.0035/千个模型调用-输出¥0.007/千个注:百度的模型暂时用不了,CodeGPT的模板无法适应百度的API
免费
免费
1. 需要购买账号2. 需要梯子
优缺点
优点:1. 内置提示词2. 生成的单元测试质量好3. 不用复制粘贴,代码直接写入文件,也不用导包4. 比较好的追加沟通,且可以把执行错误发给它,然后它会继续修改,效果还不错缺点:1. 付费(目前可不断薅羊毛)2. 需要开2个编辑器3. 学习一个新的编辑器成本
优点:1. 内置提示词2. 相对稳定,输入是很确定的(本质是调API,不会对你输入做处理)缺点:1. 付费2. 交互和生成的质量不如cursor
优点:1. 免费2. 操作简单(右键生成)缺点:1. 无法理解提示词2. 右键直接生成不稳定3. 质量和交互一般
优点:1. 免费2. 操作简单(右键生成)缺点:1. 无法理解提示词2. 右键直接生成不稳定3. 生成的质量最差
优点:1. 可以理解提示词(需要每次输入)2. 生成的测试质量相对很好缺点:1. 付费,需要梯子2. 提示词需要每次都输入(能理解但理解的不是很全面)3. 交互和生成的质量不如cursor

2. 实战

本文将在两个领域实际尝试AI辅助编程:
  • 前端:博客美化,修改一些渲染逻辑,添加样式等。
  • 后端:Java开发接口。

1. 博客美化案例

产品需求:美化GitBook主题样式,修复代码块首次加载时Mac样式和折叠功能不生效
需求工时:0.5天
需求分析:
  1. 整体样式需要支持平滑过渡和明暗模式切换
  1. 修复首次加载时代码块样式不生效的问题(本博客框架NotionNext自带Bug,刷新一次后正常)
  1. 数学公式需统一渲染为蓝色,并适配暗黑模式

VSCode的Github Copilot

采用Github Copilot的Agent模式,模型是Claude 3.7 Sonnet,三次关键对话完成需求优化:
对话
输入内容
1
@Codebase 帮我优化GitBook主题的全局样式,添加明暗模式过渡效果,内容区域增加圆角和阴影
2
@Codebase 修复代码块首次加载时Mac样式和折叠功能不生效的问题,在PrismMac组件添加重试机制
3
@Codebase 将文章里的数学公式统一改成蓝色,明亮模式用#0366d6,暗黑模式用#58a6ff,修改KatexReact组件
第一次对话片段
第一次对话片段
以上代码commit在:
  1. 优化目录导航组件,添加目录切换功能和样式改进;更新页头组件以支持滚动效果;增强导航列表的交互体验;改进全局样式以支持暗黑模式和响应式设计
  1. 优化PrismMac组件,重构初始化逻辑以避免多次执行;增强DOM监控以处理动态加载的代码块;修复行号样式问题并改进代码折叠功能
  1. 优化InfoCard组件,添加LazyImage的高度属性以确保图像正确显示;去除gitbook过多的蓝色,公式都渲染成蓝色
由于第一次对话,AI改进样式时给文章标题和导航栏的按钮和链接都加了蓝色,因此第3次commit我手动删除了此部分多余的CSS。
 
第一次对话就完成了核心样式改造,后续仅需微调颜色和修复边界问题。AI能精准理解组件关系,甚至主动补充了暗黑模式适配方案。

VSCode的Roo Code

让它帮我修复“代码块首次加载时Mac样式和折叠功能不生效”的问题,只是做了口语化的描述,它就很清楚地理解了需求并做出了正确的修改:
关键代码是:
Roo Code干了以下两个事,成功解决了问题。
  1. 在外部资源加载完成后添加500ms延迟的renderPrismMac调用
  1. prism-mac-style.css加载完成后添加300ms延迟的renderPrismMac调用
notion image
可以看到每步都可以手动进行确认,并且告诉了每步的原理、花费,还是非常贴心的。
 

2. Java开发案例

💡
不要把Ai当成一个傻子,更不要把它当成上帝,而是把它当作一个人。当你和别人沟通的时候,你要说出背景和问题,有了清晰的背景和清晰的问题,别人才可以很好的给你答案。
 
对于写代码来说,背景就是「整个代码库」,问题就是指令,比如「为xx接口,新增一个xx字段的查询条件」
 
Cursor的强大在于它可以很好的理解代码库,当你在 在 Composer 里面 @Codebase 它就理解了整个代码库,是真的理解了,不再是之前IDEA里面的插件一样含糊其词的理解。既如此那么在使用Cursor只剩下一个问题了:「描述问题,下达指令」
产品需求:为某个列表新增两个时间查询
需求工时: 0.5天
需求分析:需要被查询的2个字段,字段A数据库是时间,字段B数据库是日期,前端产品要求传递日期范围
那么就要在ControllerQuery里面新增4个日期的接受字段,传递到Service的时候字段A相关的要转成时间,同时在XML里面加上对应的查询

Cursor

三次对话完成了这个需求
对话
输入内容
1
@Codebase @DmsPatientPackageController.java 需要对 findPatientPackageWithPage 新增 created 和 expiryDate的范围查询, created前端传递的是日期格式,数据库是时间格式,需要在 @DmsPatientPackageViewServiceImpl.java 进行转换,
2
@Codebase 1、我习惯让开始叫From,结束叫To, 2、日期转成时间的时候开始要是00:00:00,结束要是 23:59:59, 3、你需要帮我完善SQL对这几个字段的处理 @PatientPackageMapper.xml
3
@Codebase createdTo 改为 createdDateTo,createdFrom 改为 createdDateFrom, createdBeginTime 改为 createdFrom, createdEndTime 改为 createdTo,expiryBeginDate 改为 expiryDateFrom,expiryEndDate 改为 expiryDateTo
在第一次对话的时候,从Controller到Xml 的代码就写完了,后面的都是简单的调优了。你没看错,它就是可以这么好的理解代码库。

建议

  1. 虽然可以直接用Cursor全部的开发,但体验不是很好,最重要的是当它改了代码,删除的是红色,新增的是绿色,在check代码的时候很难受。我现在都是用Cursor写代码,然后IDEA来check代码。同时打开一个项目切换一下并不麻烦,在IDEA里面看到的都是修改后的代码,check起来一目了然
  1. Ai是会犯错的,check代码很重要,当写完一个小的功能建议提交代码,不然写的多了后面想要会滚什么的相当麻烦
  1. 最最最最重要的就是先下载尝试
 

总结&好文推荐

AI辅助编程在前端领域已经势不可挡,在后端领域,由于IDEA在Java开发的霸主地位,虽然支持Github Copilot插件但远没有Cursor等原生集成IDE来得丝滑。
 
知乎上这篇全网首家,教你快速打造个人/企业版本 cursor对智能IDE的总结值得一看。
 
上一篇
Windows下C++环境配置:VSCode+Clangd+Cmake+Ninja
下一篇
本地大模型部署
Loading...