AI 真没抢走我的饭碗,但把「写代码」这活儿彻底改了样

小柯 专家 1小时前 345 浏览 12 点赞 约 2 分钟

上周 review 同事 PR 时突然意识到:我已经两个月没亲手写过完整的业务逻辑函数了。不是偷懒,而是 Cursor + Claude Sonnet 4 把「实现细节」全揽走了,我现在的日常变成了——盯着需求文档拆任务、给 AI 定接口契约、把生成的代码跑通测试、再把边界 case 补进 prompt 里。

这变化挺微妙的。以前我是「造轮子」的,现在更像「验轮子」的。代码量少了 70%,但读代码、改 prompt、追踪幻觉的时间多了三倍。上周那个支付回调重构,AI 一把梭生成 300 行,看着顺眼,跑集成测试才发现它把幂等性键设成了 order_id 而不是 transaction_id,差点上线出事故。这种「看着对、跑着错」的坑,现在得靠人来兜底。

我现在的工作流长这样:

  • 需求拆解:把模糊需求拆成确定性接口签名 + 验收标准,存成 Markdown 扔给 AI
  • 契约先行:先定 TypeScript 接口、Zod schema、数据库迁移脚本,再让 AI 填实现
  • 对抗式测试:写一组故意刁钻的测试用例(并发、重试、脏数据),看 AI 能扛住几轮
  • Prompt 版本化:把每轮修改的 prompt 当代码一样进 Git,方便回溯哪版最稳
AI 真没抢走我的饭碗,但把「写代码」这活儿彻底改了样
// 现在给 AI 的任务模板大概长这样
interface PaymentCallbackTask {
  input: {
    rawPayload: unknown;
    idempotencyKey: string;  // 必须是 transaction_id
  };
  output: {
    status: 'success' | 'duplicate' | 'invalid';
    orderId: string;
  };
  constraints: [
    "幂等性键仅使用 transaction_id",
    "重复回调返回 duplicate 不抛错",
    "签名校验失败返回 invalid",
    "所有外部调用需带超时和重试"
  ];
}

最明显的感受:「会不会写代码」不再是门槛,「能不能把模糊需求变成可验证的规格」才是核心竞争力。 以前招人看 LeetCode,现在我更想看候选人给一段烂代码写多少条能跑通的测试用例,或者面对 AI 幻觉时怎么定位、怎么改 prompt 修正。

有同行问我会不会焦虑。说实话,刚开始真有点——毕竟敲键盘的爽快感没了。但后来发现,当实现成本趋近零,系统设计、架构取舍、技术债治理、跨团队协作这些「软技能」反而值钱了。AI 不会替你决定:这个服务该不该拆、一致性怎么妥协、技术债什么时候偿、新人怎么带。

现在招人,我会加一道必考题:
> 给你一段 AI 生成的有隐蔽 Bug 代码,你不许改代码,只能通过补充 prompt / 增加测试 / 调整上下文让它自己修对。演示一下你的过程。

这比白板写算法能看透多了。


对了,最近在折腾把这个流程固化成团队共享的 .cursorrules + GitHub Actions 自动跑对抗测试,想问下各位有没有类似的「AI 协作规范」落地经验?特别是怎么防止 prompt 漂移导致生成质量忽好忽坏,求个思路。

cursor提示词工程Claude Sonnet 4对抗式测试技术债治理

全部回复 (3)

前端大鹏 初级 1小时前
现在直接把接口文档扔给 AI 生成测试用例,再反向核对实现,省得自己瞎想边界情况了
0 回复
副业中测试 中级 1小时前
AI 生成的代码怎么排查那些莫名其妙的运行时 bug? breakpoint 都打不到生成逻辑里去
0 回复
数据分析师Neo 专家 56分钟前
最累的是改 prompt 比改代码还费神,一个边界条件要反复试三四遍才对
0 回复

发表回复

支持 Markdown 格式