一、导言

跟着 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东西在研制流程中的最佳实践
生成成果:
AI东西在研制流程中的最佳实践

2.1.2 生成ER联系图

将有依靠联系的类复制到 Cursor,生成 ER 类图:

AI东西在研制流程中的最佳实践
生成成果:
AI东西在研制流程中的最佳实践

2.1.3 生成发布方案

输入发布方案内容和格局即可:

AI东西在研制流程中的最佳实践

2.1.4 代码重构优化

将需求优化的代码复制到 Cursor,选中后输入:重构优化下面这段代码即可。

AI东西在研制流程中的最佳实践

2.1.5 SQL查询优化

将表结构和方针查询 SQL输入到 Cursor,输入对查询SQL进行优化即可:

AI东西在研制流程中的最佳实践

2.1.6 生成库表DDL和DML句子

把表字段和内容设计描绘清楚,让其生成相应的句子即可:

AI东西在研制流程中的最佳实践

2.1.7 文件批量处理

能够对文件进行批处理。比方找出某个值,将其替换成某个新的值;或许每一行都新增一个字段等常见操作:

AI东西在研制流程中的最佳实践

2.2 IDE+copilot

灵敏运用 IDE 自带的模版功用和 Copilot 才能,能够帮咱们快速完结代码cr。

2.2.1 Java Template + Copilot 快速 CR

将准备好的 Review 问题(比方:“剖析xx办法是否有逻辑缺点,假如有给出解决方案,没有说明理由”)配置到 Java LiveTemplate 中,设置好自己习气的快捷键,比方crBug,当需求对某个办法进行 cr 的时分,直接快捷键补全对应预设的问题即可。

AI东西在研制流程中的最佳实践
将光标定位到需求 cr 的办法的下方,输入 crbug 选择文案即可。
AI东西在研制流程中的最佳实践

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

在整个研制迭代的生命周期中,能够在不同迭代阶段,交叉运用 Cursor 和 Copilot 的才能,有效进步了代码质量和开发功率。接下来展现一下,在需求迭代进程中, AI 东西能够协助咱们完结哪些工作。

3.1 系分阶段

3.1.1 生成时序图

依据需求进行系分设计,运用 Cursor 生成需求的时序图。输入

AI东西在研制流程中的最佳实践
输出
AI东西在研制流程中的最佳实践

3.1.2 生成 ER 类图

运用 Cursor 生成 ER 类图。

AI东西在研制流程中的最佳实践

3.2 编码阶段

3.2.1 函数等级

3.2.1.1 东西函数快速生成

Copilot 能够直接生成通用的东西函数,比方常用的日期比较函数,或许字符串判别函数等。

AI东西在研制流程中的最佳实践

3.2.1.2 战略类型的办法快速生成

Copilot 能够学习框架战略的办法,而且能够仿照之前战略办法,快速生成相似办法。比方在下面这个列子中,前两个办法是人工写的,第三个办法是 Copilot 依据注释主动补全的,全体是可用的。

AI东西在研制流程中的最佳实践
AI东西在研制流程中的最佳实践

3.2.2 逻辑块等级

3.2.2.1 枚举类快速生成

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

AI东西在研制流程中的最佳实践

3.2.2.2 模型 DTO 快速生成

在完结第一个字段的注释后,Copilot 会主动补全当时成员变量的定义。还能够推测后续该模型或许存在的字段,能给出不错的主张参阅,且契合个人的命名习气。

AI东西在研制流程中的最佳实践

3.2.2.3 Stream逻辑表达式主动完结

Copilot 能够依据注释,快速补全 Stream 逻辑表达式,成果基本正确。取数据做某件事:

AI东西在研制流程中的最佳实践
对数据进行分组:
AI东西在研制流程中的最佳实践

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

Copilot 能够快速补全条件句子(如if句子或switch句子)和循环句子(如for循环或while循环)。If条件

AI东西在研制流程中的最佳实践
For循环
AI东西在研制流程中的最佳实践

3.3 CR 阶段

3.3.1逻辑缺点剖析

3.3.1.1 运用 Copilot

Copilot 能够发现部分逻辑缺点,而且能够给出改造方案,可是有时分并不精确,需求开发人员自己判别鉴别。将光标定位到方针办法的下方,通过输入:剖析xx办法是否存在逻辑缺点,假如有给出解决方案。Copolit 会给出下图所示的缺点提示和解决方案。

AI东西在研制流程中的最佳实践

3.3.1.2 运用 Cursor

Cursor 能够发现逻辑缺点,而且给出改造方案,精确性相对较高。 输入代码上下文和问题即可:代码+剖析这段代码是否有逻辑缺点,假如有给出解决方案,中文输出。

AI东西在研制流程中的最佳实践

3.3.2 代码重构

Cursor 支撑代码重构,而且重构精确度较高,契合开发规范。只需求将代码复制到 Cursor,选中后输入重构优化这段代码即可。

AI东西在研制流程中的最佳实践

3.4 UT阶段

3.4.1 生成单元测验

3.4.1.1 运用 Copilot

Copilot 能够剖析代码生成 UT 描绘,代码行掩盖率可做到100%(每一个分支逻辑)。将光标定位到方针测验办法的下方,通过写注释:“为xx办法生成单元测验,掩盖一切分支状况”,这样 Copilot 会生成 UT 描绘和 UT 代码。当然也可通过上面介绍过的预设模版的办法触发生成单元测验。

AI东西在研制流程中的最佳实践
PS: 生成的单元测验代码不能直接运用,需求不断地重复测验。现在 Copilot 只能在办法的所在类中生成单元测验代码,无法直接生成单元测验类。

3.4.1.2 运用 Cursor

Cursor 能够直接为方针办法生成单元测验类。在 Chat 界面,输入方针代码和”为xx办法生成测验用例,掩盖一切分支状况”即可。

AI东西在研制流程中的最佳实践

3.5 发布阶段

能够运用 Cursor 生成发布方案。在 Chat 界面输入:“生成一个发布方案模版,内容有发布时间、发布内容、发布分支、发布人员、影响点,表格方式输出”,详细内容和方式可依据实际状况自行调整。

AI东西在研制流程中的最佳实践

四、总结

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 能够逐步完善,给开发者带来愈加完美的运用体验。