我是LoreLuo 罗耳, 一名10年后端经验的程序员,目前在一家金融公司就职.
AI编程为我带来了全新的开发体验,我想分享一下我是如何在工作中使用Cursor的.
上一篇文章中 AI编程方法论: 我如何与Cursor协作,我介绍了方法,这篇我会分享我的实际经验
实际案例
这个案例来源于我最近在公司做的一个真实的小项目,这个项目是一个基于流量分发的SDK。
在开发这个SDK之前,我们组内已经用planUML的方式画好了主要逻辑和流程图;数据结构、主要类的命名以及业务规则等,都已经以设计文档的方式输出好了,整个方案已经和架构师确认过.
剩下的工作,只要是一个初中级程序员,基本上都能够按照这份文档把SDK的功能实现出来。当时我给自己分配的这个SDK的工作量大概是两天,可能用一天的时间写代码实现,剩下的一天做一些单元测试。
出乎意料的效果
我这次没有自己去写代码,而是选择用Cursor来帮我做代码开发。我想试试我能不能在不写一行代码的情况下,难不能完成这个需求.
最终实现的效果确实出乎我意料:
- 实现需求过程非常丝滑,cursor生成主要代码时基本没有太多错误,少量的错误我通过review后cursor会自动修正
- 最终生成的单元测试都是一遍过,基本没有什么大的偏差。
下面我会介绍一下我是如何用Cursor来完成这个需求开发的。
开发准备
在使用Cursor之前,项目的脚手架我已经建立好了,因为这是按照我们公司的规范做的。
包括所使用的技术选型,我也是约定好了。这些内容我都定义在了一个需求文档里,包括技术选型、核心的业务诉求、关键的逻辑还有一些规则,我都会详尽地在这个文档中进行描述。
技术实现方案
我先通过引用我的需求文档,然后让Cursor帮我给出一份更加详细的技术实现方案,包括代码的实现,涉及到哪些类的实现等等。
从这个过程中,我可以看到它对我的需求的理解度有没有偏差,包括它给的方案是否符合我的要求。这一步是耗费时间最多的,我大概花了半个小时的时间和cursor沟通,让cursor理解我的诉求.
复杂业务逻辑处理
对于一些更复杂的业务逻辑,比如具体的路由方法,我新建了一个模块设计文档,然后重新引用上面的需求文档和技术文档,让Cursor把这个模块设计继续完善,把里面的一些分支判断都写好.
到这里时,伪代码实现已经完成了,到整个项目的实现逻辑已经非常清晰了.
我还让它同时给出了一份测试案例,包括测试用例。这有点类似于TDD(测试驱动开发),通过测试案例,到时候我再编码的时候就可以去验证它写的到底对不对。
代码实现
我开始想通过Compose的模式让它帮我把主要的几个文件都直接新建出来。不过出了点问题,可能我对Compose的理解还不够.所以最终是我手动把这些空文件建立出来。
不过后面每个文件的实现都是由它完成; 每次生成代码时,我会引用那个技术文档,然后让它继续把实现代码给出来。给出来之后,我会去看它的代码有没有问题,如果没有的话,那我就会让它直接应用到文件中。
在这个过程中,我也只是要点一下那个按钮,然后它的代码就会同步过来了。
代码优化
按照这几个步骤,我就基本上把整个代码都实现完了。之后,我又对整个项目进行了一遍review。比如它的一些命名,比如它的一些枚举类,重新让它定义后再应用到项目中。
最终效果完成度很高,所有的代码都没有在引用中有报错。
单元测试
接着让它根据每一个类去把单元测试写出来。我去看它的单元测试实现,基本上能符合我的预期。
然后有个别缺失的场景,我让它补充了之后,整个单元测试一遍跑下来都没有问题。
然后我去实际运行了一下我这个具体的代码实现,看起来也是大差不差。
总结
基本上第一阶段的研发工作可能就已经结束了。
原本预计是两天的工作量,最终耗时是两个小时,而且整个过程非常丝滑,没有太多的卡点。
我要做的事情,都是在写prompt和他沟通, 然后查看它的方案是否正确
后续的新文章中,我会介绍下如何用cursor来写java项目, 感兴趣的可以关注下.