如何和AI协作提高工作效率
随着AI生成代码占比提升至20%-50%,开发者反而更累,陷入调试AI代码、频繁切换Chat窗口的困境。本文提出重塑工作流的核心策略: 调整心态:接受AI代码不完美,追求系统效率而非单点准确率,优先分配AI处理高重复、低风险任务。 标准化流程: 预制上下文:通过规范文档(如Spec.md)和手写样板代码引导AI风格。 批量生成:集中指令生成多模块代码,减少打断。 严格验证:利用静态检查、逻辑审查和
引言:为什么AI写了50%的代码,我们反而更累了?
2025年,许多大厂的数据显示,新增代码中已有20%-30%甚至50%是由AI生成的。但作为一线开发者,你是否有这种感觉:代码产量高了,但人更累了。
我们陷入了一个怪圈:以前花时间写代码,现在花时间给AI写Prompt,然后花更多的时间Debug它生成的“看起来完美其实全是坑”的代码。我们在多个Chat窗口之间反复横跳,注意力被切得粉碎。
本文基于yousa的演讲和三年AI Coding实战经验,发现这个认知问题还是重要的值得写一些东西给大家分享,不谈虚的未来展望,只谈一个核心问题:当AI成为生产力基建时,开发者该如何设计工作流,才能真正拿到“效率增益”?
一、 心态重塑:先算账,再干活
很多开发者拒绝或抱怨AI,是因为掉进了 “准确率陷阱”。我们总期待AI像高级工程师一样,一次性给出完美代码。一旦它写出Bug,我们就会觉得“还不如自己写”。
在实战中,我们需要把心态从“追求单点完美”转变为“追求系统效率”。请记住这个公式:
效率增益 = 纯人工耗时 AI生成时间 + 人工修复/验证时间 \text{效率增益} = \frac{\text{纯人工耗时}}{\text{AI生成时间} + \text{人工修复/验证时间}} 效率增益=AI生成时间+人工修复/验证时间纯人工耗时
实战启示:
不要强求AI代码100%正确。只要(生成+修复)的时间远小于你自己手写的时间,这就是一次成功的协作。哪怕它写的代码有瑕疵,只要它是 “甜点区”任务,你就赚了。
什么是AI协作的“甜点区”?
不要把核心算法或极度复杂的业务逻辑直接丢给AI。优先将AI算力分配给以下四类任务:
- 高重复/模板化:CRUD接口、DTO转换、数据映射。
- 高耗时:手写需要2-3小时,但创造性低的工作(如编写全套单元测试)。
- 低风险:挂了也不会导致核心资损的非关键路径。
- 易验证:肉眼能看懂,或者编译器/测试脚本能直接拦截错误的。
二、 核心SOP: 管理AI协作流
要摆脱“随机试错”的痛苦,我们需要一套标准化的操作流程(SOP)。我们将这套流程称为 “指战员模式”:你是指挥官,AI是执行力超强但缺乏背景知识的实习生。
步骤 1:上下文预制 (Context Injection)
原则:Garbage In, Garbage Out。你喂给AI什么,它就吐出什么。
- 错误做法:直接在对话框输入“帮我写个用户登录接口”。
- SOP做法:
- 建立
Spec文件:在项目根目录维护一个Agent.md或Spec.md。 - 内容包含:项目的分层架构图、统一的错误码定义、数据库表结构摘要、关键的第三方库版本。
- One-Shot 示例:永远先手写一个你认为最标准的代码范例(比如一个完美的Controller+Service实现),投喂给AI,告诉它:“后续所有接口,严格模仿这个风格。”
- 建立
步骤 2:批量生成 (Batch Generation)
原则:利用AI的并发能力,而不是把它当打字机。
- 场景:需要为10个新实体写CRUD。
- SOP做法:
- 确认AI理解了步骤1中的“标准范例”。
- 下达指令:“参照上述风格,为 User、Order、Product 实体生成对应的 Controller、Service 和 DTO 层代码。”
- 不要逐个审查:此时不要被打断,让AI一口气生成完。
步骤 3:验证与收敛 (Validation & Convergence)
原则:对AI的代码保持“零信任”,瓶颈从“写”转移到“验”。
- 验证层级:
- 静态检查 (Linter):依靠IDE插件自动修复格式、导包错误。
- 逻辑审查 (Review):重点看鉴权逻辑、边界条件处理(如空指针、超大数值)。
- 防御性测试 (Test):这一步必须做! 要求AI:“为刚才生成的代码编写单元测试,覆盖 正常路径、非法参数、数据库异常 三种场景。”
- 实战技巧:如果测试跑不通,直接把报错日志丢回给AI,让它自己修。
三、 工程化改造:让项目变“AI友好”
如果你的项目本身代码混乱、没有文档,AI的效果会大打折扣。提高效率的终极手段是改造环境。
1. 标准化 (Standardization)
AI需要清晰的“说明书”。
- 统一规范:接口必须有OpenAPI/Swagger定义。
- 显性知识:把脑子里的业务规则写成文档,哪怕是简单的Markdown,放在代码仓库里。AI读取这些文档后,幻觉率会显著下降。
2. 自动化 (Automation)
让机器去验证机器。
- Pre-commit Hooks:配置强力的Lint规则,禁止不规范代码入库。让AI帮你写这套配置脚本。
- CI/CD Pipeline:建立自动化测试流水线。AI生成的代码提交后,必须通过流水线验证。
四、 开发者生存指南:管理你的注意力
引入AI后,我们很容易陷入“沟通疲劳”。为了保持心流 (Flow),建议采用 “时分复用” 策略:
| 时间段 | 角色 | 任务 | 状态 |
|---|---|---|---|
| 09:00 - 10:00 | 架构师 | 定义任务,编写Spec,准备上下文,给AI下达批量指令。 | 高认知 |
| 10:00 - 11:30 | 领航员 | 深度工作(处理核心难题),挂起AI任务,不被弹窗打断。 | 心流态 |
| 11:30 - 12:00 | 验收员 | 集中验收AI在第一阶段生成的代码,运行测试,修复Bug。 | 交互态 |
黄金法则:
- 3分钟原则:如果AI生成的结果需要你花超过3分钟去解释和修补,说明上下文给得不够,或者这活儿不适合AI。立刻停下来,自己写,或者重写Prompt。
- 不再做“编译器”:不要人眼去检查分号漏没漏,那是Linter的工作。人眼只检查业务逻辑和安全漏洞。
五、 实际案例
下面我通过两个真实场景(批量业务开发 和 防御性测试生成),展示如何通过 “上下文预制”和“One-Shot(单样本)诱导”,让AI产出直接可用的代码。
场景一:批量制造“甜点” —— 30分钟搞定一套标准业务接口
背景:
你正在开发一个电商后台,需要为 Order(订单)、Product(商品)、Customer(客户)三个实体写全套CRUD接口。
痛点:
手写太慢,复制粘贴容易漏改变量名;直接让AI写,它生成的风格五花八门(有的用Result.ok(),有的直接返回对象,有的没加日志)。
❌ 错误示范(低效模式)
User: 帮我写一个订单的Controller,要有增删改查。
AI: 生成了一段代码,用了默认的JPA风格,没加你的错误码规范,没加Swagger注解,还得你一行行改。
✅ 正确SOP:上下文预制 + 样板诱导
第一步:建立项目级“说明书” (.cursorrules 或 context.md)
在项目根目录创建一个文件(例如 context.md),把你的工程规范固化下来。
# 项目工程规范
## 1. 响应结构
所有接口必须返回 `ApiResponse<T>` 格式:
- 成功:ApiResponse.success(data)
- 失败:ApiResponse.error(BizCodeEnum.CODE, message)
## 2. 异常处理
- 业务异常抛出 `BizException`
- 参数校验失败抛出 `MethodArgumentNotValidException` (由GlobalExceptionHandler处理)
## 3. 技术栈
- Spring Boot 3.0, MyBatis Plus, Lombok, Swagger 3 (OpenAPI)
## 4. 命名规范
- Controller路径:/api/v1/{entity_name}
- 方法名:create, getById, update, deleteById, list (分页)
第二步:手写“黄金样板” (One-Shot)
不要让AI凭空发挥。你先亲自写一个最简单的 CustomerController,确保每一行代码(注解、日志、换行风格)都是你最满意的。这被称为“黄金样板”。
第三步:执行批量生成 Prompt
现在,把 context.md 和 CustomerController.java 作为上下文喂给AI(在Cursor/Copilot中选中它们),然后输入:
Prompt:
上下文参考:
context.md(规范) 和CustomerController.java(代码风格样板)。任务:请完全参照 CustomerController 的代码结构、注解风格和错误处理方式,为 Order 和 Product 两个实体生成对应的 Controller 层代码。
要求:
- 保持包路径一致,仅替换实体名称。
- 只有实体特有的字段逻辑不同,CRUD骨架必须1:1复刻。
- 不要解释,直接输出代码。
结果:
AI会像复印机一样,精准地把你的风格“印”到其他实体上。变量名、日志前缀、Swagger描述都会自动适配。你只需要Review一下特有的字段逻辑即可。
收益:
- 人工耗时:30分钟(写规范+写样板)。
- AI生成:5分钟(生成剩余10个接口)。
- 维护成本:极低(因为风格完全统一)。
场景二:从“裸奔”到“堡垒” —— 自动化生成防御性测试
背景:
你接手了一段复杂的Python遗留代码(或者AI刚生成的复杂逻辑),逻辑很绕,你不敢动,也没时间写测试用例。
痛点:
很多开发者只让AI写“Happy Path”(成功路径)的代码,上线后一遇到空值或异常参数就崩。
❌ 错误示范
User: 给这段代码写个单元测试。
AI: 写了一个test_success(),运行通过。你以为稳了,上线后输入一个-1,服务挂了。
✅ 正确SOP:基于角色的对抗式验证
第一步:让AI理解代码逻辑
选中目标函数 calculate_shipping_fee。
第二步:使用“攻击者思维” Prompt
不要让AI当“保姆”,让它当“黑客”。
Prompt:
你是一个资深的QA工程师,专注于寻找代码的边界漏洞。
任务:
- 分析
calculate_shipping_fee函数的所有输入参数。- 不要只写成功用例!请列出至少 5 种可能导致 panic、死循环或逻辑错误的极端场景(Edge Cases),例如:空值、负数、超大整数、非法的枚举值、数据库连接超时。
- 为这些场景编写
pytest测试用例。- 使用
pytest.raises验证异常是否被正确捕获。
第三步:迭代修复 (The Loop)
- 运行AI生成的测试代码。
- 现象:大概率会有几个测试挂掉(Fail)。
- 行动:不要自己修!把错误日志直接贴回给AI。
Prompt:
运行你生成的测试后,出现了
ZeroDivisionError和TypeError,错误日志如下:
[粘贴日志]请修复原业务代码
calculate_shipping_fee以通过这些测试。注意不要破坏原有的正常逻辑。
收益:
通过这个流程,你不是在“写代码”,而是在 “编织安全网”。你利用AI的发散思维去穷举你没想到的Bug,然后反过来加固代码。这才是把时间花在了“验代码”上。
从“随机试错”到“标准产线”
如果我们把文章中的理论落地到日常开发,其实就是建立一套 “AI友好型”的工作流。
建议你从现在开始,在项目里增加这三个具体的动作:
1. 建立 context/ 文件夹
不要每次都重新教AI什么是“Result对象”。把项目中稳定不变的代码(DTO基类、工具类、架构图)单独放在一个文件夹里。每次开新任务,先把这个文件夹作为Context投喂进去。
2. 实行“三明治”开发法
- 上层面包(人):定义接口(Interface)、编写Prompt、设计核心数据结构。
- 中间肉饼(AI):填充实现类(Impl)、编写转换逻辑、生成CRUD。
- 下层面包(人+AI):人设计测试策略,AI生成测试用例,自动化流水线验证。
3. 遵守“15分钟规则”
如果一个Prompt你调整了15分钟,AI还是写不对,立刻停止。这说明:
- 要么任务过于复杂,需要拆解。
- 要么缺少关键的上下文信息。
- 要么这属于AI的“幻觉区”(如复杂的数学推导或极冷门的库)。
此时,自己手写核心逻辑,然后让AI做外围的包装和测试。
🚀 你的行动清单 (Actionable Advice)
不要试图一口气改变整个团队。今天下午,你可以做一件事:
找一个你最近写过的、觉得写得最好的后端接口(Controller + Service + Test),把它保存为 best_practice_template.md。
下次再有类似需求时,试试用下面这个Prompt开局:
“阅读
best_practice_template.md。这代表了我们团队的最高代码标准。
请模仿这个模板的 命名规范、日志格式、异常处理 和 测试覆盖率,
为 [新需求] 编写代码。”
你会发现,AI 突然变得“懂你”了。
结语:从 Coder 到 Commander
AI Coding 时代的到来,并没有让程序员失业,而是强迫我们升级。
以前,你的价值体现在 “你能多快写出快速排序”;
现在,你的价值体现在 “你能否定义清楚问题,并提供足够的上下文,让系统为你工作”。
记住这两条铁律:
- 瓶颈已转移:从“生成”转移到了“验证”。
- 上下文为王:AI水平的高低,完全取决于你提供上下文(Context)的质量。
不要试图战胜AI的速度,要学会驾驭它的方向。
参考资料
- OpenAI Prompt Engineering Guide
- Claude (Anthropic) 官方文档
📊 行业数据与研究报告 (Why validation matters)
-
GitHub x Accenture 企业效能研究
-
微软研究院论文: The Impact of AI on Developer Productivity
-
DevOps.com: 代码漏洞与 AI 生成代码报告 (Aikido)
-
Robinhood AI Coding 实践 (eFinancialCareers)
-
Alphabet (Google) 2024 Q3 财报电话会
更多推荐



所有评论(0)