基层程序员薪资涨幅长期跑不赢物价通胀
周五晚上,老周把工资条甩到群里。2021 年他月薪 12k,现在 13.5k。房租从 1800 涨到 2600,猪脚饭从 15 涨到 22,通勤地铁一个月多花 80。他说:“我不是没涨薪,是涨薪跑不过楼下快餐店。”
这话扎心。基层程序员的薪资涨幅跑不赢物价通胀,靠熬时长、拼加班,很难把缺口补回来。你能控制的,是单位时间产出。AI 编程工具像 Cursor,已经能帮后端和全栈工程师省下大量体力活,但前提是你会用。
我见过两类误区。
第一类,把 Cursor 当自动写代码机器。输入“帮我写个支付模块”,然后等它吐出一大段。结果 API 是幻觉,包版本对不上,原有工程被改得七零八落。
第二类,觉得 AI 生成的代码只要跑起来就能上线。编译通过、测试绿色,就敢提交。后面发现测试只测了 happy path,边界和并发全漏。
下面这些技巧,来自我和团队在真实项目里踩坑后的整理。目标很直接:让 AI 变成可控产能,而不是随机 bug 生成器。
一、高效实战技巧:把 AI 变成可控产能
1. 先喂工程上下文,再让它动手
很多人上来就提问,AI 只能靠猜。项目是 Spring Boot 2.7 还是 3.2,MyBatis 还是 JPA,包管理用 Maven 还是 pnpm,它不知道。猜错一次,你就要花半小时修。
操作步骤:
- 在项目根目录建
.cursorrules,写清技术栈、包管理、命名规范、禁止改公共接口、测试框架。 - 用
@Codebase或@Files指定相关文件,别让全库扫描。上下文越干净,幻觉越少。 - 要求 AI 先输出改动计划:改哪些文件、为什么、风险点。你确认后再写代码。
- 要求它以 unified diff 形式返回,最小改动。别接受“全文件重写”。
真实案例:我们做订单取消退款。第一次让 AI 自由发挥,它新增了一个重复的 RefundService,还改了状态枚举,把“已取消”和“退款中”混在一起。后来限定只改 OrderCancelService、RefundClient 和对应测试,并在规则里写“公共接口不可变”,AI 才给出可 review 的 diff。
【金句:AI 编程的上限,取决于你给它的上下文和验收标准,不取决于你敲回车的手速。】
2. 测试先行:让 AI 写失败测试,再写实现
AI 写实现很快,写测试也快。问题在于,它容易写出“看起来对”的测试。你要让它先写测试,并且确认测试失败,再写实现。
操作步骤:
- 用自然语言描述输入、输出、异常、边界。
- 让 AI 先只写测试,运行并确认失败。
- 再让它写实现,只改到测试通过。
- 你人工补并发、幂等、回滚测试。AI 经常漏这些。
真实案例:支付回调签名验证。AI 第一版实现能过单次回调,但没考虑重复通知。我们让它先写“同一 tradeNo 重复回调只加一次积分”的测试,测试失败,它才去查数据库唯一索引和状态机。这个顺序省掉了上线后的对账事故。
【金句:让 AI 先写失败测试,等于给它画好跑道,它才不会带着你冲下悬崖。】
3. 三明治提示词:上下文、目标、验收标准
提示词散乱,AI 就自由发挥。我常用三明治结构,直接照搬:
上下文:Spring Boot 3.2 + Java 17 + MyBatis-Plus,相关文件 @PaymentCallbackService.java @PaymentCallbackMapper.xml。
目标:同一 tradeNo 重复回调只处理一次,保留旧日志。
验收:单测覆盖首次回调、重复回调、并发回调、异常回滚;不改公共接口;输出 diff 和运行命令。
限制:

