AI工具Copilot和Cursor的最佳实践

释放双眼,带上耳机,听听看~!
本文介绍了基于人工智能技术开发的Copilot和Cursor在软件开发中的最佳实践,以及它们在不同研发阶段的应用。

一、引言

随着 ChatGPT 的发布,AI 工具的热度也是越来越高,各种 AI 工具如雨后春笋般层出不穷,在这之中,有两款在研发流程中有显著提效表现:Copilot 和 Cursor。两款工具都是基于人工智能技术开发的,为开发人员提供了强大的支持和功能。Copilot 是⼀种基于⼈⼯智能的代码自动补全插件,支持常见的开发环境和编辑器,比如 IntelliJ IDEA 、VSCode、Visual Studio 等。它经过了训练,学习了超过 10 亿行的代码样本,具备强大的代码理解和生成能力。可以根据你的代码注释,自动补全逻辑块级别或方法级别的代码。这使得在开发过程中,你可以更快速地编写代码,减少了重复性的劳动,大大提高了开发效率。Cursor 是一款多功能的智能工具软件,它不仅支持代码逻辑检查和重构,还提供了一系列其他功能。包括在系统设计阶段生成系统时序图和类文件 ER 图,协助数据库表的设计生成,批量处理文件,甚至生成发布计划等。Cursor 在软件开发的不同阶段都能提供有力的支持,从系统分析到代码编写,再到测试和发布,都能帮助开发团队更高效地完成任务。它是一种强大而多功能的智能工具,能够显著提升研发流程的效率。本文将主要介绍 Cursor 在软件开发不同阶段的能力,在迭代各阶段(编码、代码 Review、单元测试) Copilot 和 Cursor 不同的使用场景,以及一些它们在实际使用中的小技巧和提效分析等,希望可以给你带来帮助。

二、工具最佳实践

2.1 Cursor 下面是 Cursor  在研发过程中一些常用能力的展示,灵活使用 Cursor 的能力,可以帮助我们更加高效的完成产品需求。

2.1.1 生成时序图

根据系统交互描述,生成时序图:

AI工具Copilot和Cursor的最佳实践生成结果:AI工具Copilot和Cursor的最佳实践    

2.1.2 生成ER关系图

将有依赖关系的类拷贝到 Cursor,生成 ER 类图:AI工具Copilot和Cursor的最佳实践生成结果:AI工具Copilot和Cursor的最佳实践

2.1.3 生成发布计划

输入发布计划内容和格式即可:AI工具Copilot和Cursor的最佳实践

2.1.4 代码重构优化

将需要优化的代码拷贝到 Cursor,选中后输入:重构优化下面这段代码即可。AI工具Copilot和Cursor的最佳实践

2.1.5 SQL查询优化

将表结构和目标查询 SQL 输入到 Cursor,输入对查询 SQL 进行优化即可:AI工具Copilot和Cursor的最佳实践

2.1.6 生成库表DDL和DML语句

把表字段和内容设计描述清楚,让其生成相应的语句即可:AI工具Copilot和Cursor的最佳实践

2.1.7 文件批量处理

可以对文件进行批处理。比如找出某个值,将其替换成某个新的值;或者每一行都新增一个字段等常见操作 :AI工具Copilot和Cursor的最佳实践

2.2 IDE+copilot

灵活使用 IDE 自带的模版功能和 Copilot 能力,可以帮我们快速完成代码cr。

2.2.1 Java Template + Copilot 快速 CR

将准备好的 Review 问题(比如:“分析xx方法是否有逻辑缺陷,如果有给出解决方案,没有说明理由”)配置到 Java LiveTemplate 中,设置好自己习惯的快捷键,比如crBug,当需要对某个方法进行 cr 的时候,直接快捷键补全对应预设的问题即可。   AI工具Copilot和Cursor的最佳实践将光标定位到需要 cr 的方法的下方,输入 crbug 选择文案即可。AI工具Copilot和Cursor的最佳实践

三、 迭代各阶段最佳实践****

在整个研发迭代的生命周期中,可以在不同迭代阶段,穿插使用 Cursor 和 Copilot 的能力,有效提高了代码质量和开发效率。接下来展示一下,在需求迭代过程中, AI 工具可以帮助我们完成哪些事情。

3.1 系分阶段

3.1.1 生成时序图

根据需求进行系分设计,使用 Cursor 生成需求的时序图。输入AI工具Copilot和Cursor的最佳实践输出 AI工具Copilot和Cursor的最佳实践

3.1.2 生成 ER 类图

使用 Cursor 生成 ER 类图。   

AI工具Copilot和Cursor的最佳实践

3.2 编码阶段

3.2.1 函数级别

3.2.1.1 工具函数快速生成

Copilot 可以直接生成通用的工具函数,比如常用的日期比较函数,或者字符串判别函数等。AI工具Copilot和Cursor的最佳实践

3.2.1.2 策略类型的方法快速生成

Copilot 可以学习框架策略的方法,并且能够模仿之前策略方法,快速生成类似方法。比如在下面这个列子中,前两个方法是人工写的,第三个方法是 Copilot 根据注释自动补全的,整体是可用的。AI工具Copilot和Cursor的最佳实践AI工具Copilot和Cursor的最佳实践

3.2.2 逻辑块级别

3.2.2.1 枚举类快速生成

在这个枚举类中,前两个枚举是人工定义的,其他的都是 Copilot 自动补全的。

AI工具Copilot和Cursor的最佳实践    

3.2.2.2 模型 DTO 快速生成

在完成第一个字段的注释后,Copilot 会自动补全当前成员变量的定义。还可以推测后续该模型可能存在的字段,能给出不错的建议参考,且符合个人的命名习惯。AI工具Copilot和Cursor的最佳实践

3.2.2.3 Stream逻辑表达式自动完成

Copilot 可以根据注释,快速补全 Stream 逻辑表达式,结果基本正确。取数据做某件事:AI工具Copilot和Cursor的最佳实践对数据进行分组:AI工具Copilot和Cursor的最佳实践

3.2.2.4 条件语句和循环快速补偿

Copilot 可以快速补全条件语句(如if语句或switch语句)和循环语句(如for循环或while循环)。If条件AI工具Copilot和Cursor的最佳实践For循环    AI工具Copilot和Cursor的最佳实践

3.3 CR 阶段

3.3.1逻辑缺陷分析

3.3.1.1 使用 Copilot

Copilot 能够发现部分逻辑缺陷,并且可以给出改造方案,但是有时候并不准确,需要开发人员自己判断甄别。将光标定位到目标方法的下方,通过输入:分析xx方法是否存在逻辑缺陷,如果有给出解决方案。Copolit 会给出下图所示的缺陷提示和解决方案。AI工具Copilot和Cursor的最佳实践

3.3.1.2 使用 Cursor

Cursor 能够发现逻辑缺陷,并且给出改造方案,准确性相对较高。   输入代码上下文和问题即可:代码+分析这段代码是否有逻辑缺陷,如果有给出解决方案,中文输出。AI工具Copilot和Cursor的最佳实践

3.3.2 代码重构  

Cursor 支持代码重构,并且重构准确度较高,符合开发规范。只需要将代码复制到 Cursor,选中后输入重构优化这段代码即可。   AI工具Copilot和Cursor的最佳实践

3.4 UT阶段  

3.4.1 生成单元测试

3.4.1.1 使用 Copilot

Copilot 能够分析代码生成 UT 描述,代码行覆盖率可做到100%(每一个分支逻辑)。将光标定位到目标测试方法的下方,通过写注释:“为xx方法生成单元测试,覆盖所有分支情况”,这样 Copilot 会生成 UT 描述和 UT 代码。当然也可通过上面介绍过的预设模版的方式触发生成单元测试。   AI工具Copilot和Cursor的最佳实践PS: 生成的单元测试代码不能直接使用,需要不断地反复尝试。目前 Copilot 只能在方法的所在类中生成单元测试代码,无法直接生成单元测试类。

3.4.1.2 使用 Cursor

Cursor 可以直接为目标方法生成单元测试类。在 Chat 界面,输入目标代码和”为xx方法生成测试用例,覆盖所有分支情况”即可。   AI工具Copilot和Cursor的最佳实践

3.5 发布阶段

可以使用 Cursor 生成发布计划。在 Chat 界面输入:“生成一个发布计划模版,内容有发布时间、发布内容、发布分支、发布人员、影响点,表格形式输出”,具体内容和形式可根据实际情况自行调整。   AI工具Copilot和Cursor的最佳实践

四、总结

4.1 Copilot

4.1.1 使用小 tips  

  • Copilot 的定位是辅助你写代码,提高开发效率,而不是真正地替你写代码。
  • 日常使用养成写注释的习惯,在更多场景发挥 Copilot 的优势能力。
  • 有意识将大方法拆分成小方法,使用 Copilot  逻辑分析和生成100%覆盖分支的能力保证代码的健壮性。
  • Copilot 的使用过程就是不断的调试过程,使用时注意给出足够的上下文,如果上下文信息不足,也可以在注释中告知关键信息(比如当前所在位置和目标对象的类型),让它理解当前的逻辑判断,才能给出更准确的建议,获取的信息越多,效果越好。
  • 细化注释的拆分粒度,有时候需要完成一段复杂的逻辑,单行描述不足以让 Copilot 理解,这时候可以将其拆分成多段小逻辑来做,最后拼装成一段完整的大逻辑。

4.1.2 常用快捷键

以下以 Mac 的系统快捷键为例,其他系统取相应键盘映射即可。   

动作 快捷键
接受建议 Tab
拒绝建议 Esc
单词级别接受建议 Alt/Option + enter
下一条建议 Alt/Option + ]
上一条建议 Alt/Option + [

4.1.3 提效分析

经过团队一段时间的试用,Copilot在各阶段的使用比例和预估提效比例如下所示。

阶段 主要功能 使用比例 预估提效比例
编码 评论生成完整函数 40% 15%
编码 评论生成代码块 70% 15%
CR 逻辑漏洞分析 10% 15%
CR 性能分析 10% 15%
UT 生成单测用例 20% 40%
UT 根据单测用例生成代码 20% 30%

PS:使用比例表示使用到该功能的频次比例。预估提效比例表示完成同一功能时,使用 Copilot 比不使用所提升的时间比例。

4.1.4 小结

Copilot 整体上是一款强大的自动补全代码逻辑的插件,在不同研发阶段都有突出表现。但是它同时也存在一些不足之处。暂时不支持跨文件,有时会给出一些类中不存在的属性的补全建议。进行代码逻辑缺陷分析的时候,给到的问题和解决方案可能并不准确,需要开发人员进一步判断甄别。上下文信息不足时,Copilot不会给出补全建议或者建议并不准确。目前只支持在目标方法的类中生成的单元测试代码,并且生成代码不能直接使用,还需要人工将测试代码拷贝到测试类的命名空间下。

4.2 cursor

4.2.1 使用小 tips

进行代码 Review 或重构时候,要尽量让 Cursor 获取到相对完整的上下文,上下文越多返回越准确。使用 Cursor 生成相关内容时(时序图或者类图),要描述清楚输出内容的类型(比如PlantUML或者Markdown),一般也需要加下中文输出,否则通常会以英文形式输出。

4.2.2 常用快捷键

以下以 Mac的 系统快捷键为例,其他系统取相应键盘映射即可。

动作 快捷键
Chat 界面 command + L
指令编辑界面 command + K

4.2.3 提效分析

经过统计分析,Cursor在各阶段的预估提效比例如下所示。

阶段 主要功能 预估提效比例
系分阶段 生成时序图、ER图 15%
CR 逻辑漏洞分析、代码重构 15%
UT 生成单测用例 30%

4.2.4 小结

Cursor 整体上是一款强大的多功能软件,在系统分析、研发迭代的不同阶段都可以提供有力的支持,提高了开发效率。但是它是一款独立的工具软件,暂时并没有集成到我们常用的开发环境中去,使用的时候需要不断的拷贝上下文和软件回切等;再有就是 Cursor 对问题的描述精准度要求较高,描述不不清晰的话通常不能给到正确的建议。但是瑕不掩瑜,希望 Cursor 可以逐步完善,给开发者带来更加完美的使用体验。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

AI绘画工具下载和安装,生成高清图片的方法

2023-11-21 15:43:14

AI教程

微软发布医学助手模型LLaVA-Med

2023-11-21 15:54:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索