AI 编程工具的真实边界:哪里提效,哪里帮倒忙

用了一年多,说点不客气的实话。

明显提效的地方

  • 样板代码:CRUD、DTO、序列化、测试脚手架。省掉的是纯粹的机械劳动。
  • 不熟的库:比我翻文档快。但要它给出可运行的示例,而不是解释。
  • 重构改名:跨文件的机械改动,准确率高。
  • 读陌生代码库:让它先总结模块职责,比自己 grep 快。
  • 写正则 / SQL / 一次性脚本:这类"语法细节记不住"的场景收益最大。

明显帮倒忙的地方

  • 模糊需求:需求没想清楚时,它会自信地给你一个错的实现,而且看起来很像对的。
  • 性能敏感代码:它倾向写"教科书正确"而非"这里最快"的版本。
  • 并发与事务:涉及锁、事务边界、幂等的地方,生成的代码经常有微妙错误。
  • 老旧代码库:训练数据里没有你司的内部约定,生成的风格会打架。
  • 安全边界:鉴权、输入校验、密钥处理,必须人工过一遍。

我现在的用法

规划     : 人写(它写的方案经常漏边界条件)
实现     : AI 写初稿,人改
测试     : AI 写,人补边界用例
代码审查 : 人(AI 审查会漏掉同类问题)
提交信息 : AI(这块它写得比我好)

核心原则:让 AI 做"可验证"的工作。有单元测试、有类型检查、有明确 spec 的部分,放心交给它;
靠经验和判断的部分,它替代不了你。

一个具体建议

别把 AI 当"更快的搜索引擎",把它当"一个很快但需要 review 的初级工程师"。
你对初级工程师怎么提需求、怎么验收,就怎么对它。


你们团队在哪个环节用得最顺?有没有踩过"看着对但线上炸"的坑?