首页 > 编程语言 >AI编程实践:使用Cursor两个小时完成两天的工作量

AI编程实践:使用Cursor两个小时完成两天的工作量

时间:2024-09-26 17:18:47浏览次数:10  
标签:cursor AI 代码 编程 单元测试 Cursor 实现 文档

我是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项目, 感兴趣的可以关注下.
在这里插入图片描述

标签:cursor,AI,代码,编程,单元测试,Cursor,实现,文档
From: https://blog.csdn.net/loroxxx/article/details/142564279

相关文章

  • 提升开发者效率的秘密武器:探索最佳编程工具
    哪个编程工具让你的工作效率翻倍?在现代工作环境中,选择合适的编程工具对提升开发者的工作效率至关重要。不同的软件工具具有独特的功能,能够帮助我们简化开发流程、提高代码质量、加快调试速度,甚至优化团队协作。接下来,我将介绍几款常见的编程工具,并分析它们的优缺点,帮助大家选......
  • AI跨时空拥抱合成视频爆火,AI图生图,图生视频操作简单。AI视频生成器
    目前AI跨越时空拥抱的视频爆火,以ai拥抱为例,可以看到这类型的视频,流量都不低。 AI项目玩法有很多,例如:AI生成肖像视频、老照片视频、拥抱视频、AI原创视频、搞笑视频、图转视频、AI二次元视频。AI项目玩法逻辑玩法一:获取使用AI小程序,生成视频,发布视频作品到各平台,吸粉......
  • GUI编程
    GUI编程什么是GUIGUI编程GUI的核心技术AWT(初级)--->Swing(高级)为什么GUI落寞了:界面不美观需要jre环境为什么要学:可以写小工具可能危害swing界面了解MVC架构,了解监听AWTawt介绍组件和容器弹窗Fram面板panel布局管理流式布局:按顺序依次排列......
  • 为什么说AI产业落地,下一代超级应用是“智能体”?
    “未来超级应用方向就是AIAgent,ChatGPT很了不起、很强大,但与Agent不一样。AIAgent时代的到来,不会是一个神奇而强大的模型突然代替了所有的工作流,涉及到技术、工程与市场的不断磨合,最终以超预期的服务呈现给人类。”——香港科技大学校董会主席、美国国家工程院外籍院士沈向洋在AI......
  • 存储服务器的 RAID 级别是什么意思?
    RAID(独立磁盘冗余阵列)是一种将多个物理硬盘组合成一个逻辑单元的技术,用以提高数据存储的性能和可靠性。RAID级别指的是这些硬盘组合的不同方式,每个级别都有其独特的性能、可靠性和成本特点。以下是几种常见的RAID级别及其含义:RAID0(条带化)性能:提高数据读写速度,因为数据被分散存储在......
  • Meta公布首款AR眼镜Orion,成本1万美元;OpenAI CTO Mira Murati离职丨RTE开发者日报
     开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个......
  • 并发编程面试题
    在java中守护线程和本地线程区别用户线程是程序创建的线程。由jvm创建的线程是守护线程,比方说垃圾收集线程。死锁与活锁的区别,死锁与饥饿的区别?死锁:是指两个或两个以上的进程(或线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下......
  • 如何使用Flux+lora进行AI模型文字生成图片
    目录概要前期准备部署安装与运行1.部署ComfyUI 本篇的模型部署是在ComfyUI的基础上进行,如果没有部署过ComfyUI,请按照下面流程先进行部署,如已安装请跳过该步:(1)使用命令克隆ComfyUI(2)安装conda(如已安装则跳过)(3)创建虚拟环境 (4)安装pytorch (5)安装需要的依赖2.......
  • 轻松创作原创文章,AI智能写作工具为你一键生成!
    在这个信息泛滥的时代,原创内容成为了稀缺资源。对于创作者而言,如何在快节奏的生活中保持高质量的输出,成为了一个巨大的挑战。AI智能写作工具的崛起,为我们提供了一种全新的解决方案。以下是一篇探讨AI智能写作工具深度价值的文章。一、AI智能写作工具:解放创作者的生产力......
  • Java高效编程(1):使用静态工厂方法替代构造函数
    解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界在Java编程中,传统上,类允许客户端获取实例的方式是提供一个公共构造函数。然而,还有一种重要的技术,应该成为每个程序员工具箱中的一部分,那就是使用公共的静态工厂方法。静态工厂方法是一个静态方法,返回类的实例。这......