你肯定遇到过这样的场景,看到一篇文章讲 Claude 3.7 Max 多强多牛,堪比什么高级架构,但当你让他来帮你写代码,发现跟个傻缺一样,乱改代码,完全不是自己想要的。
核心是缺少对 AI 的运用,那些文章中演示的案例,要么是在什么什么测试中获得了多少分,要么是做对了多难的算法题,没有贴合日常工作生活的部分。
别着急,看完这篇文章,你不仅能把 3.7 Max 用到工作中提效,还能把 AI 与生活融合,真正实现理解和运用。
这个星期公司全量引入 cursor,我们研发 3 个后端 1 个前端 1 个产品 1 个技术 leader,从 0 开始搭建了一套网赚系统,这是开发的第二天,我们已经生成了基本了框架、业务代码,也了解了 AI 的应用和边界,我把我们踩过的坑和使用技巧分享出来。
我们使用的 cursor 团队付费版,我混合使用 Auto、3.5、3.7 Max、thing,就我个人来说,无脑 3.7 Max,虽然有时候会慢一些,但代码治疗和理解能力无与伦比,非常棒。
道
如果只用一句话总结如何用好 AI,那就是引导 AI 说出你想让他做的事,再让他实现。
就像程序 debug 一样,要把任何一个步骤都拆到让 AI 自己说一遍。
- 人理解需求。
- 把需求告诉 AI。
- 让 AI 复述需求,如果错误则纠正,直到 AI 的理解和人一致。
- 让 AI 开始生成。
这里需求不仅仅指的是产品文档那种需求,而是任何一个你想实现的目标。
在开发领域,可以问它我想根据 RBAC 构建一套完整的鉴权体系,请告诉我你的思路,先不要写代码;AI 会框框一顿输出,你再和它对接细节,比如不要用 Spring Security、自行实现自定义注解、token 放在请求对象的 common 参数等等,微调完所有逻辑后,再让 AI 复述一遍,没问题的话,让它开干。
扩展到其他领域,都可以这么问。
比如做视频字幕,如果中英文混合讲,语音识别出来的字幕不准确,那就可以把字幕文件拖到 cursor,问 AI 如何修改字幕中中英文识别错误的情况?AI 也会框框给你一堆方案,你从里面挑一个,让 AI 讲思路。
比如其中一个方案是让它会根据字幕分析视频讲的什么内容,根据内容推测哪些字幕不对。
但先别让他执行,少了 3 校验的过程,生成的结果大概率不满意,还记得前面说的吗?先让他说一下思路和执行方案,他会告诉你分析出哪些不对,在这个过程中提供更多信息,比如这是一个讲解 cursor 的视频,他就知道了要把 "可色" 转成 cursor。
3 才是精华,一定要和 AI 校准,不停的补充信息,调整逻辑,达到对需求和执行方案的一致性理解。
要打破两个界限。
- 不知道怎么做,可以问 AI 怎么做,而不是自己想实现方案让 AI 执行。不知道怎么解决问题本身,也是个问题。
- 不局限于代码,使用 AI 拼的是想象力和创新,多多扩展知道自己不知道。
理解和记忆
AI 和人的共性,是理解和记忆。
模型参数越多,理解能力自然越强,3.7 就是比 3.5 理解能力好。这就像人的天赋一样,有人的天生就在某些方面强,就像 Claude 适合编程、有的适合画图、deepseek 适合推理、豆包适合搜索。
记忆是上下文 token 数,token 数越多,记忆能力越强。
提升理解能力,花钱升级模块即可。
上下文能力就有意思了,一方面是上下文长度当然越长越好,另一方面是,要学会把上下文拉到和自己理解的一致。
还是回到了 3 中,我可以给 cursor 非常多上下文,重点还是我需要确认他的思路和执行方案和我预期的一致。
我在 1 个回话中让 cursor 生成 1w+ 行代码 230+ 个文件,他非常出色的完成了任务,靠的就是不停把它拉到我期望的上下文。
怎么拉上下文?
比如我和 AI 聊完 A 功能点,结果它写着写着出现了 B 错误,在修正 B 错误的时候进入了 C 场景,等把 C 处理完了,我要回到 A 怎么办?
我:你还记得我们聊过关于 A 的事项吗?
AI:当然,我们针对 A 还需 xxxxxx。
我:你在 xxx 理解的和我不一致,我期望你 xxxx。
AI:好的,我会 xxxxx。
我:非常好,请说明你的思路和实习方案,先不要写代码。
AI:xxxxxx。
我问:很好,请你开始写代码。
把这套拉上下文技巧学会,就不可能出现 AI 写出来的东西不符合预期。
不要自己写 A,要让 AI 说出 A,人只用判断 AI 说的符不符合预期。
目标和指令
这是两种用 AI 的思维,针对比较泛的问题,用目标,落实到具体的步骤,用指令。
程序员接到需求后,习惯性拆解步骤,再让 AI 去执行,这种方式不对,应该让 AI 理解你要做什么事,让他自己拆解步骤,到执行的时候指令它使用设定的规范。
在用的时候,只有少量指令,大部分都是目标导向。
这是 AI 和以往所有工具的区别,其他工具都在指令领域提效,AI 已经渗透到部分目标领域。
善用目标,只需告诉 AI 你期望得到东西,你做这些的目标。
关于指令,我会在术中详细说明。
AI 能力边界
如果给定的目标过于宽泛,AI 会傻眼。比如帮我生成个网赚系统、帮我写完所有订单模块。
太过细节,也会出问题,就感觉它会有余力帮你做点其他的改动。
这个得在实际使用过程中领悟,哪些任务超出了它的边界,哪些任务对它来说过于简单。
术
cursor 可以设置 mdc、规范,之前叫 Cursor Rules,我们用了很多 mdc 和规范,但它好像会偷懒,规范遵循的不完整,多几次会话就忘了规范。
我也在探索中,结果怎么样还要实验,这里说一下我的心得。
研发规范
我们有自己的后端架构,我希望 cursor 按照我们后端架构的规范写代码。
- 规范限定文件目录、不同层级的代码风格、写法,比如 model、mapper、service、api 等等。
- 只给具体的代码规范,不给宽泛的定义,聚焦到代码风格,比如使用 xxx 注解,使用 xxx 格式的备注。
- 多给他要做什么,少给不要做什么。
- 最好不要超过 100 行,多了 AI 偷懒不读。
可以生成一个规范的规范,再按照这个规范生成各层级的规范。
到目前为止,我们还在探索规范,规范囊括的范围非常大,写好规范不容易。
需求规范
这个明天开始探索,有进展了再写篇文章记录下。
坑
需求
这是第一个坑,我们没有过需求文档,所有人接收的信息就两个字,网赚系统。
产品根据网赚完善需求,研发根据网赚靠想象写代码,啊不对,应该是让 AI 靠想象写代码,整个流程混乱不堪,研发都不知道具体要做什么。
老板以为靠 AI 自由发挥就能写个八九不离十的东西,再缝缝补补完善下就能用。
实际上不行,我们为此修改流程。
- 先用粗略的产品文档生成前端页面,产品和前端边做边调整。相当于节省了产品画图的时间。
- 调整完后定一个 1.0 版本,后端根据页面和需求,整理表结构设计和接口文档,包含入参、出参。
- 根据表结构和接口文档,各自编写前后端代码,然后联调。
这个步骤也存在挑战。
- 前端要写两套?原型图的静态页面;和后端对接的前端代码,是否有办法转化?
- 如果依赖静态页面当原型、交互图,迭代怎么办?要在已有的页面上改动。
团队协作
用 AI 写代码,git merge 的时候简直灾难,我们第一次合代码合到 12 点。
最开始我们在各自分支上开发,使用 merge 互相合并,后来我们改成了在同一个分支上开发,及时同步代码,每个人负责不同的模块是以不同的文件名开头的,改到别人的代码就回滚这个文件。
只能临时解决下问题,用 cursor 写代码感觉不适合多人协作,应该把业务尽量做到解耦,每个人负责其中一个模块。
vscode 不如 idea 强大
后端写代码真的是很大的痛点,编译不如 idea,不能正确的引入底层 jar 包,甚至同一个文件夹跨项目都做不到,不能及时帮我找到编译错误的地方。
找代码速度不如 idea,找来找去只看到全局搜索,像特定的搜索类、文件、符号、url,没找到对应的功能。
快捷键丰富程度不如 idea,比如定位到下个编译错误 F2,看实现,找引用等等。
功能少了很多不一一说,我现在是 idea 和 cursor 两边同时用的。
后半部分坑填完了我再写个下篇,欢迎朋友们关注。