首页技术专题博客目录关于与联系

我用 AI 写了一个月代码,结论是...

用 Cursor、Copilot、ChatGPT 写了一个月代码,效率翻倍,但也踩了不少坑。分享真实的使用体验和心得。

去年12月,我决定做个实验:一个月内,尽量用 AI 写代码。

用了 Cursor、GitHub Copilot、ChatGPT,甚至还试了 Claude。

现在实验结束了,结论是:AI 确实能提升效率,但没你想的那么神。

我用了哪些工具

1. Cursor(最常用)

Cursor 是个 AI 编辑器,基于 VSCode,内置了 GPT-4。

我主要用它来:

  • 生成代码:Cmd+K 输入需求,直接生成
  • 重构代码:选中代码,让 AI 优化
  • 解释代码:看不懂的代码让 AI 解释

优点:集成得很好,不用切换窗口。

缺点:收费($20/月),而且有时候会卡。

2. GitHub Copilot(最稳定)

Copilot 是代码补全工具,写代码时自动提示。

它最擅长:

  • 补全重复代码
  • 生成测试用例
  • 写注释

优点:便宜($10/月),补全速度快。

缺点:只能补全,不能对话。

3. ChatGPT(最灵活)

ChatGPT 不是专门的编程工具,但很好用。

我用它来:

  • 设计架构
  • debug 复杂问题
  • 写文档

优点:能深入讨论,思路清晰。

缺点:要复制粘贴代码,麻烦。

AI 帮我提升了哪些效率

1. 写样板代码快了10倍

最明显的提升是样板代码。

比如写一个 CRUD 接口,以前要:

  1. 定义 model
  2. 写 controller
  3. 写 service
  4. 写 repository
  5. 写测试

至少要半小时。

现在,我告诉 Cursor:"写一个用户 CRUD 接口,包括增删改查和分页。"

3分钟搞定。

2. 看不懂的代码有人解释了

遇到复杂的算法或者老代码,以前要花很久理解。

现在,选中代码,让 AI 解释,秒懂。

比如这段正则:

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/

我问 ChatGPT,它说:"这是密码强度校验,要求至少8位,包含大小写字母、数字和特殊字符。"

省了查文档的时间。

3. 测试用例自动生成

以前我最讨厌写测试,又累又无聊。

现在,写完函数,让 Copilot 生成测试用例,基本能覆盖80%的场景。

剩下20%的边界情况,我再手动补充。

AI 的坑

1. 生成的代码不一定对

AI 会编,但不保证代码是对的。

有次我让 Cursor 写个排序算法,它生成了:

function sort(arr) { return arr.sort((a, b) => a - b); }

看起来没问题,但它直接修改了原数组

我要的是返回新数组,不改原数组。AI 没理解清楚。

2. 生成的代码很啰嗦

AI 喜欢写得很详细,注释一堆,代码也很冗余。

比如:

// 检查用户是否存在 if (user) { // 用户存在,更新用户信息 user.name = name; user.email = email; // 保存到数据库 await user.save(); } else { // 用户不存在,抛出错误 throw new Error('User not found'); }

我会写成:

if (!user) throw new Error('User not found'); user.name = name; user.email = email; await user.save();

简洁多了。

3. AI 不理解上下文

AI 只看到你给它的代码,看不到整个项目。

比如我让它写个函数,它用了 lodash,但项目里没装这个库。

或者它生成的代码风格和项目不一致。

这需要你自己检查和修改。

4. 越复杂的问题,AI 越不靠谱

简单的 CRUD、工具函数,AI 写得很好。

但涉及到架构设计、性能优化、复杂的业务逻辑,AI 就不行了。

它会给你一个"看起来很对"的方案,但实际上有问题。

我的使用心得

1. AI 是助手,不是替代品

AI 不能替你思考,它只能帮你写代码。

你得知道:

  • 要做什么
  • 怎么做
  • 生成的代码对不对

如果你连需求都不清楚,AI 也帮不了你。

2. Prompt 很重要

同一个需求,不同的 prompt,生成的代码质量差很多。

差的 prompt:

"写个用户列表"

好的 prompt:

"写一个用户列表页面,使用 React + TypeScript,包括搜索、分页、排序功能,调用 /api/users 接口获取数据。"

越详细,生成的代码越符合你的要求。

3. 不要全盘接受

AI 生成的代码,一定要review

我见过有人直接把 AI 生成的代码提交,结果线上出 bug。

至少要检查:

  • 逻辑对不对
  • 有没有性能问题
  • 有没有安全漏洞
  • 风格是否一致

4. AI 最适合做这些事

根据我的经验,AI 最擅长:

  • ✅ 写样板代码(CRUD、配置文件)
  • ✅ 生成测试用例
  • ✅ 写注释和文档
  • ✅ 解释代码
  • ✅ 简单的重构

不擅长:

  • ❌ 架构设计
  • ❌ 性能优化
  • ❌ 复杂的业务逻辑
  • ❌ debug 诡异的 bug

效率提升了多少

我统计了一下,这一个月:

  • 代码量:比平时多了40%
  • 工作时间:没变(还是8小时)
  • Bug数量:比平时多了10%(因为review不够仔细)

如果算纯写代码的时间,效率大概提升了 50%

但整体效率提升没那么多,因为:

  • 需要时间 review AI 的代码
  • 需要时间修改和调整
  • 有时候 AI 理解错了,还不如自己写

会继续用吗?

会。

虽然 AI 不是万能的,但确实能提升效率。

我现在的工作流是:

  1. 自己想清楚要做什么
  2. 让 AI 生成初版代码
  3. review 和修改
  4. 补充边界情况和优化

比全手写快多了。

给想用 AI 编程的人的建议

  1. 不要指望 AI 能替你思考:它只是工具
  2. 学会写好 prompt:越详细越好
  3. 一定要 review 代码:别盲目信任
  4. 从简单任务开始:CRUD、测试用例
  5. 保持学习:AI 不能替代你的成长

AI 是工具,不是魔法。用好了能提效,用不好就是灾难。


你用 AI 写代码吗?效果如何?欢迎交流。

评论区