为什么写这篇

三个月前,我对AI编程的认知还停留在”聊天机器人帮我写写正则”。

现在,我用AI改了37000行Java代码、写了定时任务、调了MQ消费者、优化了SQL查询。

我不是AI专家,只是个被迫用AI的前端工程师。

这篇文章记录我这三个月的真实经历——怎么从”不会用”到”离不开”,踩了哪些坑,效率提升了多少。


第一阶段:好奇但不会用(第1-2周)

刚开始的样子

1
2
3
我:帮我把这个Java方法改成TypeScript
AI:好的,这是转换后的代码...
我:(看不懂,不知道对不对)

问题

  • 不知道AI能做什么
  • 不知道该怎么问
  • 不知道AI给的答案对不对

第一个有用场景

帮我写正则表达式:

1
2
3
4
5
我:匹配手机号的正则
AI:/^1[3-9]\d{9}$/

我:验证邮箱的正则
AI:/^[^\s@]+@[^\s@]+\.[^\s@]+$/

效率提升:以前要搜10分钟,现在10秒。

这个阶段的感受

  • AI是个”高级搜索引擎”
  • 但也就这样了
  • 写复杂代码还是得靠自己

第二阶段:开始依赖(第3-4周)

转折点

接手了Java后端的需求,但我不会写Java。

1
2
3
4
5
我:这个LEFT JOIN为什么返回null
AI:因为LEFT JOIN会保留左表所有行,右表匹配不上就填null...

我:那怎么改?
AI:改成JOIN(INNER JOIN),没有付款记录的直接过滤掉...

突然意识到:AI不仅能给我答案,还能教我为什么

开始用的场景

场景 以前 现在
写正则 搜Stack Overflow 直接问AI
查API 翻文档 问AI
改Bug 自己debug 把错误信息给AI
学新技术 看教程 让AI解释

这个阶段的坑

坑1:盲目信任

1
2
3
4
5
// AI给的代码
List<String> list = new ArrayList<>();
for (int i = 0; i < data.size(); i++) {
list.add(data.get(i).getName());
}

我直接复制粘贴,结果编译报错——data的类型不对。

教训:AI给的代码要先看一遍再复制

坑2:问得太笼统

1
2
3
4
我:怎么写SQL
AI:SELECT * FROM table WHERE condition...

(废话,我当然知道基础语法)

教训:问题要具体,带上上下文。


第三阶段:掌握套路(第5-8周)

学会了怎么问

差的问法

1
这个代码怎么改?

好的问法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
我在改一个买家通用配置的定时任务,
需要在配置失效时自动更新状态并记日志。

现有代码:
[粘贴代码]

我的需求:
1. 每小时扫描一次
2. 找到即将失效的配置
3. 发出延迟MQ消息
4. Consumer收到后更新状态

请问:
1. Job里怎么写扫描逻辑?
2. Consumer里怎么记日志?

效率对比

  • 以前问3轮才能得到想要的答案
  • 现在1轮就够

开始用AI做复杂任务

任务1:改定时任务

1
2
3
4
5
6
7
8
9
10
我:我要新建一个定时任务,每小时扫描过期的配置,
然后发MQ消息让消费者更新状态。

参考现有的BidServiceConfigJob写法,
帮我写一个新的MlGoodsSkuPriceConfigJob。

需要:
1. 继承现有的Job模式
2. 查询未来1小时内过期的配置
3. 发送延迟MQ消息

AI给了完整的代码,我改了几个字段名就能用。

任务2:优化SQL

1
2
3
4
5
6
7
我:这个SQL用了LEFT JOIN
但我只需要判断"有没有",
用fetchExists是不是更好?

[粘贴旧代码]

帮我改成新版,并解释为什么这么改。

AI不仅给了新代码,还解释了LEFT JOIN vs JOIN的区别。

任务3:写博客

这篇文章就是AI帮我写的初稿,我改了30%左右。

这个阶段的效率

任务 不用AI 用AI 提升
写正则 10分钟 30秒 20倍
查API 15分钟 1分钟 15倍
改Bug 1小时 10分钟 6倍
学新技术 半天 1小时 4倍
写博客 3小时 1小时 3倍

第四阶段:形成习惯(第9-12周)

现在的工作流

1
2
3
4
5
6
7
8
9
10
11
12
13
1. 接到需求

2. 先问AI:这个需求涉及哪些技术点?

3. 让AI给个方案(不一定用,但帮我理清思路)

4. 开始写代码

5. 遇到报错 → 把错误信息给AI

6. 写完 → 让AI review一遍

7. 提交

最常用的是这几个

1. 解释代码

1
2
3
我:这段代码在做什么?用前端思维解释一下。

AI:这就像前端的useEffect...

2. 给方案

1
2
3
4
5
6
我:我要实现配置失效自动更新,
有几种方案?各自的优缺点是什么?

AI:方案1:定时轮询...
方案2:延迟MQ...
方案3:数据库触发器...

3. Review代码

1
2
3
4
5
我:帮我看看这段代码有什么问题。

AI:1. 这里可能返回null...
2. 这个循环可以优化...
3. 建议加个空值判断...

4. 写文档

1
2
3
4
我:帮我把这段代码的逻辑整理成文档,
要包含SQL对照表和前端类比。

AI:[生成文档]

这个阶段的感受

  • AI不是”替代我”,是”增强我”
  • 最大的价值不是”写代码”,是”教我怎么想”
  • 效率提升是真实的,但不是无脑的

踩过的坑(血泪教训)

坑1:AI会编造API

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
我:Java里有没有类似Array.filter()的方法?

AI:有,List.stream().filter()...

(这个是对的)

我:那有没有List.map()?

AI:有,List.stream().map()...

(这个也是对的)

我:有没有List.reduce()?

AI:有,List.stream().reduce()...

(这个还是对的,但AI开始编造不存在的参数了)

教训:AI给的API要查官方文档确认

坑2:AI不理解业务

1
2
3
4
5
6
7
8
9
我:这个配置失效了要记日志。

AI:好的,加一行log.info()...

(AI以为只是加个日志)

我:不是,要记到数据库里,有专门的日志表。

AI:哦,那需要调用bidServiceConfigLogService.save()...

教训:AI不知道你的业务上下文,要说清楚

坑3:AI会过度设计

1
2
3
4
5
我:帮我写个方法,判断配置是否过期。

AI:[写了一个200行的方法,包含缓存、重试、监控、日志...]

我:我只是要个if判断...

教训:告诉AI你要什么,不是让它自由发挥。


效率对比(真实数据)

第一个月

1
2
3
4
总工作时间:160小时
其中用AI的时间:20小时(12.5%)
AI帮我省的时间:约30小时
净效率提升:18%

第二个月

1
2
3
4
总工作时间:160小时
其中用AI的时间:50小时(31%)
AI帮我省的时间:约80小时
净效率提升:50%

第三个月

1
2
3
4
总工作时间:160小时
其中用AI的时间:60小时(37.5%)
AI帮我省的时间:约100小时
净效率提升:62%

趋势:用得越多,省得越多。


给新手的建议

1. 从小事开始

不要一上来就让AI写整个项目。

从这些开始:

  • 写正则
  • 查API
  • 解释报错
  • 格式化代码

2. 学会问问题

差的问法

1
这个代码怎么改?

好的问法

1
2
3
4
5
6
7
8
9
10
我在改一个Java定时任务,
需要在配置失效时记日志到数据库。

现有代码:[粘贴]
日志表结构:[粘贴]

请问:
1. 在哪里加日志逻辑?
2. 调用哪个Service?
3. 日志表需要哪些字段?

3. 永远不要盲目复制

AI给的代码:

  1. 先看一遍
  2. 理解逻辑
  3. 确认API存在
  4. 再复制

4. 把AI当老师,不是工具

1
2
3
4
5
不要只问"怎么写"
要问"为什么这么写"

不要只问"这个报错怎么修"
要问"这个报错是什么意思"

5. 接受不完美

AI给的方案不一定是最优的,但通常是够用的

完成比完美重要。


写在最后

三个月前,我觉得AI编程是”骗人的”。

两个月前,我觉得AI编程是”有点用的”。

一个月前,我觉得AI编程是”离不开的”。

现在,我觉得AI编程是“前端工程师转全栈的捷径”

我不是说AI能让你变成专家,但AI能让你快速上手

三个月前我不会写Java,现在我会改定时任务、会优化SQL、会写MQ Consumer。

这不是因为我突然变聪明了,是因为AI帮我跳过了最痛苦的入门阶段

如果你也是前端,也在考虑要不要用AI辅助编程,我的建议是:

从今天开始,每天用一次。

不用多,一次就够。

三个月后,你会回来感谢我的。


本文基于作者2026年4-7月的真实经历,所有效率数据来自个人时间记录。

下一篇预告:《AI协作流程:怎么给AI提需求,怎么review AI写的代码》——更进阶的AI使用技巧。