80 lines
3.6 KiB
Markdown
80 lines
3.6 KiB
Markdown
---
|
||
id: ai.ai-coding.scenario.ai-assisted-feature
|
||
title: 团队引入 AI 编程:从“各用各的”到可验证、可复用的工作流
|
||
type: scenario
|
||
domain: ai
|
||
stack: [ai-coding, cicd, git]
|
||
tags: [AI 编程规范, 规则文件, Skills, 代码审查, CI, 数据安全]
|
||
level: intermediate
|
||
prerequisites: [ai.ai-coding.verify-evidence]
|
||
est_hours: 2
|
||
related: [ai.ai-coding.interview, devops.git.index]
|
||
week: [8, 15]
|
||
---
|
||
|
||
# 团队引入 AI 编程:从“各用各的”到可验证、可复用的工作流
|
||
|
||
## 业务背景与问题
|
||
|
||
一个 8 人的研发团队开始普遍使用 AI 编程工具,三个月后出现:
|
||
|
||
1. 代码风格和分层越来越乱,每个人的 AI 按不同的“常见写法”生成代码;
|
||
2. 有 PR 一次改了 40 个文件,审查者看不过来,直接通过,上线后出了问题;
|
||
3. 测试覆盖率看起来上升了,但很多测试只是重复了实现逻辑;
|
||
4. 有人把包含客户手机号的日志粘贴给了外部 AI 工具;
|
||
5. 同样的错误(例如时区处理)AI 反复犯。
|
||
|
||
## 约束
|
||
|
||
- 不禁止使用 AI 工具,要让它用得更稳。
|
||
- 公司有数据安全规定。
|
||
|
||
## 方案设计
|
||
|
||
1. **仓库级上下文**:`AGENTS.md` / `CLAUDE.md` 写明技术栈、命令、分层约定、完成标准;按目录的规则文件(前端、后端、迁移各一份)。
|
||
2. **团队 Skills**:把高频任务(新增接口、加数据库迁移、发版检查)写成 Skill,由资深成员维护,评审后合并。
|
||
3. **PR 规范**:单个 PR 限制规模;描述中必须写“验证方式”(跑了哪些测试、在哪个环境验证、截图),可附验证记录;AI 生成的大段代码要标注。
|
||
4. **CI 兜底**:测试、类型检查、lint、密钥扫描必须通过;关键模块要求人工审查者理解后再批准。
|
||
5. **数据安全**:明确哪些工具被允许、哪些数据不能发送(客户数据、密钥、未脱敏日志);提供脱敏脚本。
|
||
6. **错误沉淀**:每次 AI 犯的典型错误,在周会复盘后补充到规则文件或 Skill。
|
||
|
||
## 关键代码
|
||
|
||
PR 模板(`.github/pull_request_template.md`,平台不同路径不同):
|
||
|
||
```markdown
|
||
## 改了什么
|
||
-
|
||
|
||
## 怎么验证的(必填)
|
||
- [ ] 自动:测试 / 类型检查命令和结果
|
||
- [ ] 手动:在哪个环境做了什么操作,结果截图
|
||
- [ ] 边界情况:补充了哪些测试
|
||
|
||
## AI 使用说明
|
||
- 使用的工具:
|
||
- AI 生成的主要部分:
|
||
- 我重点审查 / 修改的地方:
|
||
```
|
||
|
||
验证记录脚本示例:[examples/ai-workflow/verify.py](../examples/ai-workflow/verify.py)。
|
||
|
||
## 取舍
|
||
|
||
| 选择 | 优点 | 缺点 |
|
||
| --- | --- | --- |
|
||
| **规则 + Skills + PR 规范 + CI(本方案)** | 稳定、可积累 | 需要有人维护规则 |
|
||
| 禁止使用 AI | 风险最低 | 效率损失,成员私下使用更难管理 |
|
||
| 完全放开 | 短期快 | 质量和安全问题累积 |
|
||
|
||
## 易错点
|
||
|
||
- 规则文件写一次就不维护,和实际代码不一致。
|
||
- 只要求“写测试”,不审查测试质量。
|
||
- 用 PR 规模限制来“拆”成很多互相依赖的小 PR,反而更难审查:按功能拆分。
|
||
- 数据安全规定只口头传达。
|
||
|
||
## 面试怎么讲
|
||
|
||
> “我在项目里用 AI 编程有一套固定做法:仓库里有 AGENTS.md 写清约定和完成标准,常见任务写成 Skill;让 AI 先出计划再执行,小步提交;每次改动跑测试和类型检查,边界测试我自己补,并在真实环境验证;PR 里写清验证方式。AI 反复犯的错误我会补进规则文件。比如有一次 AI 生成的价格计算在优惠券大于金额时返回负数,就是我补的边界测试发现的。”
|