惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Hacker News
The Hacker News
F
Full Disclosure
Cloudbric
Cloudbric
Blog — PlanetScale
Blog — PlanetScale
W
WeLiveSecurity
N
News and Events Feed by Topic
T
Troy Hunt's Blog
V2EX - 技术
V2EX - 技术
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
B
Blog
GbyAI
GbyAI
C
Check Point Blog
B
Blog RSS Feed
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Recorded Future
Recorded Future
The Last Watchdog
The Last Watchdog
N
News and Events Feed by Topic
T
The Blog of Author Tim Ferriss
O
OpenAI News
V
V2EX
人人都是产品经理
人人都是产品经理
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
WordPress大学
WordPress大学
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Security @ Cisco Blogs
C
Cisco Blogs
Security Latest
Security Latest
S
Security Affairs
V
Visual Studio Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园 - 司徒正美
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Azure Blog
Microsoft Azure Blog
Last Week in AI
Last Week in AI
AWS News Blog
AWS News Blog
雷峰网
雷峰网
Apple Machine Learning Research
Apple Machine Learning Research
PCI Perspectives
PCI Perspectives
博客园_首页
U
Unit 42
Google DeepMind News
Google DeepMind News
Hugging Face - Blog
Hugging Face - Blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
The Register - Security
The Register - Security
N
Netflix TechBlog - Medium
L
LINUX DO - 热门话题
H
Hacker News: Front Page

博客园 - 后端AI实验室

我带的那个实习生,比我更依赖AI——但他的问题和我完全不同 我用AI把一个外包需求从30天压到5天交付,然后客户说:下次还找你 我用 AI 设计了一套新人 onboarding 方案,两周后他的产出超出了我的预期 AI编程一年后,我还记得怎么手写代码吗?答案让我沉默了 裁员后我被迫负责运维,用AI从0搭建了可观测性平台 我把代码审查权交给AI两个月,团队发生了什么 等保三级整改,敏感数据加密,数十个系统——3个人用Cursor一周搞定了 我让AI模拟面试官考了我一个小时,然后我沉默了 同一个需求,我先出技术方案,再让AI出方案——差距让我沉默了 3年没人敢碰的老代码,我用AI重构了它——然后翻车了 我让AI review了自己写的代码,然后删掉了30% 我把一个生产Bug的排查过程,交给AI处理——20分钟后我关掉了它 我把同一个需求分别交给初级程序员、高级程序员和AI,结果让我沉默了 用AI写代码,我差点把漏洞发上线:血泪总结的10个教训 IntelliJ IDEA的统治即将终结?我已经3个月没怎么用它了 公司给团队配了Cursor,然后开始裁员:一个残酷但必须面对的真相 黄仁勋说编程只是打字?一个12年老程序员的冷静思考 springcloud-nacos配置中心 springcloud-nacos服务注册 springcloud-bus消息总线 springcloud-configclient手动刷新
我用Cursor开发了3个月,整理出这套提效4倍的工作流
后端AI实验室 · 2026-03-04 · via 博客园 - 后端AI实验室

上周,一个粉丝给我发私信:

"你之前说Cursor很牛,但我用了两周,感觉也就那样。写代码还是要自己改很多,速度也没快多少。"

我当时就笑了。

因为我刚开始用的时候,也是这种感觉。

用了3个月,踩了一堆坑之后,我才搞清楚:Cursor不是一个更好的代码补全工具,它是一个需要你重新学会"提问"的编程范式。

大多数人用Cursor,只用到了它10%的能力。

今天我把自己摸索出来的工作流,完整地写出来。

一、我的效率提升到底是怎么来的?

先说结论,再说方法。

用Cursor之前,我一天的有效编码产出大概是200-400行。 用Cursor之后,同等质量下,产出稳定在800-1200行。

提升了3-4倍,不是吹的,是实测数据。

但这个提升不是从第一天开始的。

第1周:感觉没什么用(效率几乎没变)
第2周:开始有感觉(提升约50%)
第3周:找到节奏(提升约150%)
第4周后:进入正循环(提升300%+)

为什么会有这个曲线?

因为用好Cursor需要重新建立一套工作习惯。你原来的习惯是"先想清楚,再动手写",而Cursor的正确用法是"先描述清楚,让AI起草,再迭代优化"。

这是两种完全不同的节奏。

二、我踩过的3个最贵的坑

在讲工作流之前,先说说我交过的"学费"。

坑1:把Cursor当高级补全工具用

错误用法:

写几个字,等AI补全,不满意就删掉重写

问题:

  • 补全粒度太小,AI没有上下文
  • 效率提升有限,还经常打断思路
  • 和直接用IDEA没什么差别

正确姿势: 不要等AI补全,要主动描述需求,让AI生成完整的代码块。

坑2:Prompt写得太简单

错误用法:

"写一个登录接口"

AI生成的:

// 最基础的登录逻辑,没有任何业务细节
public String login(String username, String password) {
    // ...
}

需要自己改的:太多了

正确用法:

"写一个用户登录接口,要求:
1. 支持用户名+密码登录
2. 密码用BCrypt加密
3. 登录失败超过5次锁定账户30分钟
4. 登录成功返回JWT token,有效期7天
5. 记录登录日志(IP、设备、时间)
6. 异常要用统一的Result包装返回"

AI生成的: 80%可以直接用的代码。

区别在哪里: 你给的上下文越丰富,AI生成的质量越高。这是废话,但大多数人就是懒得写清楚。

坑3:AI生成完就直接提交

这是最危险的坑。

我第一个月有一次,让AI写了一个文件上传接口,看了一眼能跑,就提交了。

结果被同事review的时候发现:

  • 没有文件大小限制
  • 没有文件类型校验
  • 上传路径直接拼接用户输入(路径穿越漏洞)

AI写的代码功能上是对的,但安全性是有问题的。

这让我建立了一个铁律:AI生成的代码,安全相关的部分必须人工review,不能偷懒。

三、我现在的完整工作流

踩完坑之后,我建立了一套稳定运行的工作流。

第一步:需求拆解(用Claude,不用Cursor)

拿到需求之后,我第一步不是打开Cursor,而是打开Claude。

为什么?

Cursor适合生成代码,Claude适合分析和思考。我会把需求丢给Claude,让它帮我:

我要做一个xxx功能,需求是:[粘贴需求文档]

请帮我分析:
1. 这个需求有没有遗漏的边界情况?
2. 建议的数据库表结构是什么?
3. 有哪些技术风险需要提前考虑?
4. 推荐的实现步骤是什么?

这一步花15-30分钟,但能省去后期大量的返工。

一个真实的例子:

需求:做一个优惠券系统

我以为很简单,Claude帮我分析后发现了7个我没想到的问题:

  • 优惠券能不能叠加?
  • 退款时优惠券怎么处理?
  • 库存扣减有没有并发问题?
  • 过期未使用的优惠券如何清理?
  • ……

这些坑,提前想清楚,比上线后修复便宜10倍。

第二步:架构设计(自己来,AI辅助)

需求想清楚之后,我会自己画出:

  • 核心的数据库表结构
  • 主要的接口设计
  • 关键的业务流程

这一步不能完全交给AI。

架构设计需要结合你的团队现状、技术栈、业务场景做判断。AI给的方案往往是"教科书级别的正确",但未必适合你的实际情况。

我会让AI做的是:

"根据这个表结构,帮我检查有没有明显的设计问题"
"这个接口设计有没有RESTful规范的问题"

用AI做review,而不是做设计。

第三步:编码实现(Cursor主导)

这一步才是Cursor发挥威力的时候。

我的Prompt模板(Java后端):

基于以下信息,帮我实现[功能名称]:

技术栈:Spring Boot 3, MyBatis-Plus, Redis, MySQL 8
已有的相关代码:[粘贴相关实体类/接口]

需要实现:
1. [具体功能点1]
2. [具体功能点2]
3. [具体功能点3]

要求:
- 异常用GlobalExceptionHandler统一处理
- 返回值用Result<T>包装
- 需要加事务的地方加@Transactional
- 写清楚注释
- 不要写单元测试(我单独让你写)

为什么要粘贴已有代码?

这是很多人忽略的关键点。Cursor能看到你的项目上下文,但你要让它知道你项目的规范和风格,最好的方式是直接粘贴示例代码。

AI会自动学习你的代码风格,生成的代码和你的项目融合度会高很多。

第四步:单元测试(全交给AI)

这是我觉得收益最大的地方。

写单元测试是我最讨厌的工作之一,现在全部交给Cursor:

基于上面实现的代码,帮我写完整的单元测试:
- 使用JUnit5 + Mockito
- 覆盖正常流程、边界情况、异常情况
- 每个测试方法要有清楚的中文描述
- 覆盖率目标:核心业务逻辑 > 80%

AI写测试的质量出乎我意料的好。它会自动想到很多边界情况,比我手写的覆盖更全面。

时间对比:

  • 以前手写测试:1小时
  • 现在让AI写:5分钟生成 + 10分钟review

提升:4倍。

第五步:Code Review(最重要的一步)

这一步绝对不能省。

我的review清单:

功能性检查:

  • 业务逻辑是否正确?
  • 边界情况是否处理?
  • 异常是否合理抛出?

安全性检查:

  • 有没有SQL注入风险?(MyBatis-Plus基本没有,但自定义SQL要看)
  • 有没有敏感信息泄露?
  • 接口有没有做权限校验?
  • 文件操作有没有路径穿越风险?

性能检查:

  • 有没有N+1查询?
  • 循环里有没有数据库操作?
  • 大数据量的场景有没有分页?

规范性检查:

  • 命名是否符合团队规范?
  • 注释是否清楚?
  • 是否有魔法数字需要抽成常量?

这个review过程,我平均要改掉AI生成代码的20-30%。

但这20-30%的修改,比从零写节省了太多时间。

四、一个完整的实战案例

上个月做了一个消息通知系统,我把完整过程记录下来了。

需求: 支持站内信、短信、邮件三种通知方式,根据用户偏好发送

Day 1上午(2小时):需求分析

用Claude分析后确定:

  • 通知模板系统(不同类型通知的内容模板)
  • 用户通知偏好设置
  • 通知发送记录(便于排查问题)
  • 失败重试机制(发送失败自动重试3次)
  • 策略模式实现不同渠道(方便扩展新渠道)

Day 1下午(1.5小时):架构设计

自己设计了4张表:

  • notify_template(通知模板)
  • user_notify_config(用户偏好)
  • notify_record(发送记录)
  • notify_retry(重试队列)

Day 2(4小时):编码实现

用Cursor生成:

  • 4个Entity类:10分钟
  • Mapper接口:15分钟
  • NotifyService核心逻辑:45分钟(包含review)
  • 三个渠道的具体实现类:30分钟
  • Controller层:20分钟
  • 单元测试:15分钟生成 + 20分钟review

总编码时间:约2.5小时

Day 2下午(1小时):联调和修复

发现并修复了2个bug:

  • 一个是AI在并发场景下的幂等性没处理好
  • 一个是重试逻辑的指数退避实现有问题

总耗时:1.5天

如果纯手写:我估计要3-4天。

五、几个让效率翻倍的小技巧

技巧1:给Cursor建一个项目规范文件

在项目根目录创建.cursorrules文件,写清楚你的项目规范:

# 项目规范

## 技术栈
- Spring Boot 3.x
- JDK 17
- MyBatis-Plus 3.5.x
- Redis(缓存)
- RabbitMQ(消息队列)

## 代码规范
- 所有接口返回Result<T>
- 异常统一用BusinessException抛出
- 日志用Slf4j,不要用System.out.println
- 常量放在对应模块的Constants类里

## 命名规范
- 接口文件名以I开头:IUserService
- 实现类不加Impl:UserService
- DTO类名以DTO结尾

配置之后,Cursor生成的代码会自动遵循这些规范,review工作量减少一半。

技巧2:用@符号引用文件

在Cursor里,用@文件名可以直接引用项目中的文件:

参考@UserService的实现方式,帮我实现OrderService的退款逻辑

这样AI能直接看到你的代码风格,生成的代码一致性更强。

技巧3:让AI解释它自己的代码

看到AI生成了不熟悉的写法,不要直接用,先问清楚:

你这里用了CompletableFuture.allOf,能解释一下为什么这样写吗?
有没有更简单的替代方案?

这样做有两个好处:

  • 避免引入自己不理解的代码
  • 顺便学习了新的写法

技巧4:分步骤生成,不要一次要太多

不好的方式:

帮我实现整个用户模块,包括注册、登录、修改密码、找回密码、注销账户

好的方式:

先帮我实现用户注册功能
[review后]
好,现在帮我实现用户登录,注意复用刚才的密码校验逻辑
[review后]
继续,实现修改密码功能

分步骤生成,每一步都能review和调整,最终的代码质量高很多。

六、我的工具链全貌

用了3个月,我的工具链已经固化:

需求分析阶段:Claude(思考和分析)
架构设计阶段:自己来,Claude辅助review
编码实现阶段:Cursor(主力)
代码调试阶段:IDEA(断点调试无可替代)
API测试阶段:Bruno(轻量,比Postman好用)

IDEA我现在每天只用1-2小时,专门用来调试。

其他时间全在Cursor里。

七、一个重要的提醒

用Cursor提高效率之后,省出来的时间,要花在刀刃上。

很多人提效之后,摸鱼的时间多了。

这是最大的浪费。

我省出来的时间,用在:

  • 深入理解需求和业务(以前没时间做)
  • 做架构设计和技术选型(以前赶时间跳过)
  • 做Code Review(以前互相review没时间)
  • 学习新技术(以前下班太累)

AI提升的是执行效率,但不会替你做思考。

多出来的时间,要用来做AI做不了的事。

写在最后

用Cursor3个月,最大的感受不是"代码写得更快了",而是工作方式变了

以前:想清楚 → 动手写 → 调试改bug 现在:描述清楚 → AI起草 → 我来优化

以前花在"打字"上的时间,现在花在"思考"上了。

这才是AI工具真正的价值。


你现在用的是什么AI编程工具?有什么心得?欢迎评论区分享。


后端AI实验室 不讲概念,只谈实战 代码开源,每周更新

image