分享一下用 Cursor 做软件工程的经历

做了什么

我平常工作中用 AI 编码工具大部分是在已有项目上修修补补,用补全比较多。而在已有项目中,因为有些代码也写得不标准,导致用 AI agent 反而会把事情搞糟。所以这次我的主要目的是想体验纯 AI 编程,即不手动改任何代码,全部通过给 AI agent 指令来完成一个项目以及不手动改任何代码,全部通过给 AI agent 指令来重构一个项目

我用Cursor写了一个德州扑克游戏平台, 带线上游戏筹码管理+发牌,线下游戏筹码管理。写这个项目纯粹是前几周线下游戏没有筹码搞得大家很难受,然后这个项目感觉对于 AI 来说也难度适中。没有什么特别的原因,做狼人杀或者什么 ERP 系统也是一样的。

项目代码: GitHub - zeruniverse/texas_game

项目demo 部署: http://8.154.30.149:5173/

其实重点不是这个游戏平台本身,而是想分享一下用 Cursor 做软件工程的经历。

项目经历

整个项目跨度 2.5 天(周四周五以及周六半天),周四要上班所以整天只花了 3 小时,周五白天上班花了午休 1 小时,晚上从 9:30PM 通宵到周六的 4:30AM ,花了 7 小时,周六起床后花了 3 小时。所以整个项目(包括打字/debug/测试)总共花了 13 小时(可能物理时间要多加两三个小时,需要写大量代码的时候我就把 cursor 挂着去干别的了)。分为两部分:

  1. 实现并验证功能,花费 7 小时

  2. 把每个游戏房间的逻辑拆成单独的 worker 线程,花费 6 小时

整个项目我只扮演产品经理和测试工程师,告诉 AI 我想要什么及 BUG 的现象是什么,技术选型及 debug 全部尽量由 AI 完成(期间有大约 3 次我让 AI 改了 10 次 AI 都改不对,所以我就帮了 AI 一下告诉他哪里的逻辑不对,代码修改仍然是 AI 做的)

AI 的技术选型是前端 VUE + 后端 Node.js 。我对这两者其实都算有所接触但不是很熟,(我工作中主要写 python 和 cpp, 但没有关系,反正代码也不是我写

我用了 o4-mini, claude-4.0-sonnet-thinking, deepseek-r1 和 gemini-2.5-pro ,全是思考模型,但是 deepseek-r1 和 gemini-2.5-pro 会把事情搞糟。所以后面只用 o4-mini, claude-4.0-sonnet-thinking

Cursor 的账号总共消耗了 157 次请求(目前 o4-mini 每次请求算 1 次,claude-4.0-sonnet-thinking 算 0.8 次),我应该总共请求了大概 130 次 agent(有些比较长的任务 cursor 会自动中止,此时按 resume 继续运行会重新算请求,请求数量大概是 180 次左右)

目前这个项目的状态我自己开了几个不同的浏览器测试已经测不出什么致命问题了。

“可以节省”的时间

  1. deepseek-r1 和 gemini-2.5-pro 浪费时间。早不用这两个估计能省 0.5 小时

  2. 3 个 bug AI 怎么改都改不对,所以让 AI 加调试信息然后自己去看代码。再加上已经知道怎么改后,不自己改,教 AI 改。这 3 个 bug 自己改估计能省 1 小时 (我是 AI 改了差不多 10 次还改不对才自己去看,AI 每次改都要时间)

  3. 半夜 o4-mini 特别特别慢,感觉是美国那边开始干活导致的。如果一直是白天的速度估计能再省 1 小时

  4. 如果我再熟悉一点 vue 以及 node.js ,我感觉可以再省 1 小时

  5. 按我自己的想法把复杂模块的技术方案告诉 AI, 让 AI 按我的技术方案做,可能可以再省 2 小时。

所以在极限情况下项目时间是一个 8 小时的编码,如果一开始就告诉 AI 做成多线程就不需要重构了,这样的话,大概项目时长在 6 小时左右。

我大概看了几眼代码和 AI 给出来的 PRD ,如果不用 AI 纯手工我一个人把这个项目做完(不摸鱼)大概需要 80 小时以上的工作量(这个一方面是我写前后端不专业,全栈大佬可以看代码和 demo 估一个时间)

经验

  1. 项目刚开始一定要让一个靠谱的 AI 写一个完整的 PRD, 然后把 prd 作为 context 把项目框架搭出来。直接按需求开始写会很乱,因为需求几个字也描述不清楚。我是先让 o4-mini 根据 web 完全调研德州扑克游戏,然后根据我的需求写完整 PRD 。后面的框架代码把核心逻辑用 TODO 表示出来,然后用后续的指令去消除 TODO

  2. 复杂的模块一定要让 AI 单独去写,不要混在一大堆任务里,不然一定写不对

  3. claude-4.0-sonnet 不太聪明但是一般不会写 bug ,o4-mini 聪明但喜欢写小 bug 。所以难的小模块和框架让 o4-mini 去写,修 bug 都用 claude-4.0-sonnet

感想

  1. 5202 年了应该放弃传统编程思维,不要再手撸代码

  2. 于程序员来说,经验的重要性会快速下降,逻辑能力的重要性会提升( AI 确实没有办法解复杂的 bug )

  3. 懂技术的产品经理是这个时代的王

  4. 基于 3 ,一个人可以开一家技术公司的时代已经来了

  5. 这个世界可能再也不需要那么多程序员岗位了,得想想后路。

55 Likes

感谢佬的经验,回头细细琢磨一下 :smiley:

感谢分享, 很有帮助。

佬可以详细讲讲PRD阶段吗?如果能放出对话记录观摩一下最好了

佬的cursorrules配置是什么呢?

感觉第四点不太对,技术我觉得是是限制开公司最小的因素,只能说开公司雇佣员工可以少雇佣一些了,比如原先需要十个开发,现在可能只需要5个或者更少。

很好的实践经历:flexed_biceps:

感谢分享

请教佬友,rust这种比较新的语言和一些库它总是写的不对,有什么好办法吗

感谢大佬分享,AI对开发模式的重构已是大势所趋,打不过就加入更是明智之选

佬, 求你项目的PRD我拿来参考一下,我用o3生成的prd总觉得太短了不够详细,但是我感觉又没啥好补充的

先Mark-Star,晚上卷

1 Like

中间Cursor卡了好久,我以为是历史信息太多了删了一波。大概回忆一下就是先进一个空的文件夹,context选web,然后Ask问:

我希望实现一个在线德州扑克游戏平台,该平台基于web,用户浏览器打开后首先是房间列表,房间有10个,前7个是线下游戏房间,后3个是线上游戏房间。用户进入房间需要输入昵称,同一个房间中同一个昵称视为同一个用户(如果用户进入房间后,另一个用户再进来,视为T出之前的用户)。房间内需控制德州扑克的游戏流程(比如要所有人都跟平或者allin或者fold,才能继续流程)。线下房间是玩家线下发实体扑克牌,平台只需要做筹码管理和流程控制,游戏结束时,如果只有一个人还在场上,平台直接把底池给他,否则要进入一个额外的收池环节,该环节所有用户可以根据线下游戏情况从底池那筹码。底池筹码拿完后才结束游戏。线上房间平台应额外发牌以及自动分池(没有收池环节)。设计上,玩家输入昵称进入房间后,应显示游戏信息,游戏状态,房间内玩家列表,以及一个公屏。公屏上有所有玩家操作的系统信息,以及用户可以实时向公屏发送聊天消息。房间有两种状态:未开始游戏和游戏中。游戏中的各种操作按钮(check call等),只有当前轮到操作的玩家可以点击。所有操作都有30s倒计时,超时系统自动帮玩家操作(能check就check,不然fold)。这个系统不要使用数据库,所有服务器信息都存到服务器的内存里。

请仔细调研德州扑克的游戏流程和规则,然后根据我的要求写一个完整的PRD和技术选型报告。

他输出后,我就换成agent模式接着让他开始搭框架,复杂逻辑先不用实现,标上todo。然后就让ai一个个实现todo。

1 Like

只配置了使用语言简体中文和模型选择列表,其他都没配

这个应该是ai通病,可能在新编程语言更严重一些。基本上没有东西ai可以一次写对。我的方法是让ai写完帮我测试并修复到可以正常编译,然后全部选autorun去干别的,等会儿回来观察下。

确实prd肯定覆盖不全,接着prd写项目框架他也是不全的。我的办法是让它先按它的想法全部写完到能运行,然后跟我想法不一样的地方让ai改

1 Like

学习一下,准备自己上手,谢谢分享

这个感受很真实

感谢回复, 佬生成的todo文档长什么样子呢? 不知道应当让AI将实现文档拆解成什么样的粒度, 更适合让AI根据文档生成代码

尝试一下Augment Agent,期待体验报告

能不能搞点机器人陪我玩啊,我想体验一下体验不了哈哈。