夜雨聆风学习资料网

ARTICLE · 1000070

满屏都在吹AI一天写App,真用一年我发现全错了

满屏都在吹AI一天写App,真用一年我发现全错了
AI CODING · 一年复盘2026.09

AI 最擅长写新代码?

满屏都在吹AI一天写App,

真用一年我发现全错了

读老代码 · 碰屎山的勇气 · 提问方式变了 · 懂原理才用得动

码蜂奶爸

iOSObjective-C

📦 5 Parts + Conclusion

👉 滑动

PART 01

别急着写新代码

它最会读老代码

PART 02

省的不是打字

是碰屎山的勇气

PART 03

它写得越快

你审得越慢

PART 04

提问方式变了

从要结果到要理解

PART 05

懂不懂原理

产出差得不是一点

PART ///

写在最后

工具省的是力气

嗡~ 码蜂奶爸!今天嗡:我用 AI 写了一年代码,最值钱的居然不是写代码。

写代码这十来年,我从单片机一路干到 iOS、Flutter。这两年身边全是“让 AI 干点活”的声音,我也没落下,AI 编程助手用满一年了。

最开始我跟你一样,满脑子想的都是“帮我写个功能”“帮我生成个页面”。真用满一年回头看,最值钱的那个场景,跟写新代码没多大关系。

今天把这 5 个反直觉的真相摊开讲。要是你还没入坑,或者刚入坑,希望能少走点我走过的弯路。

01

PART

它最擅长的是读老代码

READ OLD CODE

这个我花了大半年才反应过来。

市面上吹得最凶的,永远是“一句话生成一个 App”“十分钟搭一个网站”。话听多了,你会觉得 AI 的舞台是从 0 到 1 造新东西。

我自己的体感是反过来的。

我手头有个老项目,纯 Objective-C,前后迭代快十年了,早年的代码注释约等于没有,一个方法能写五百行。这种文件公司里没人愿意碰,谁碰谁头大。

后来我试着把一个 .m 文件整个丢给 AI,就问了一句:这段到底在干嘛。

几秒钟,它把逻辑给我捋清楚了。从入口到出口,哪一步改了什么状态,哪个判断分了几条路,讲得明明白白。连那个藏在角落里、只在某个机型上才会走到的分支,它都挑出来了。

从那以后我就不拿它当“写代码机器”用了。读老代码这事,它比我快,也比我耐心。它不会累,也不会因为这是屎山就翻白眼。

02

PART

省下的是碰屎山的勇气

THE COURAGE

接着说那摊屎山。

以前要动老项目,我得先做半天心理建设。倒不是改不动,是怕。怕改了这行,另一行跟着崩;怕某个看起来多余的判断,其实是在填陈年老 bug 的坑。

现在有了 AI 就不一样了。先让它通读一遍,把风险点标出来,我再动手。真改崩了,让它帮忙定位也快。

所以我这一年真正省下来的,是打字吗?不是。是那种“到底要不要去碰这摊屎山”的纠结。

这个账我以前从来没算过。现在回头看,它比打字贵多了。多少老项目就是这么被拖死的,代码本身没坏,坏在没人敢动。

03

PART

写得越快,你得审得越慢

REVIEW SLOWER

这条是我踩出来的教训,得坦白。

AI 写代码是真快,快到你觉得今天能多摸几条鱼。问题在后面:它写出来的每一行,你都得逐行审。

为什么?因为它会一本正经地写错。

有时候是 API 版本搞混了,有时候是内存管理那套给你偷工减料,狠的时候直接编一个不存在的库函数给你用。看着像模像样,一跑就报错。

举个我自己的真实例子。我让 AI 写个定时刷新的功能,它生成得飞快,但 block 里对 self 的引用处理,写错了一层:

...objective-c

// AI 生成的版本,看着挺对,其实埋了雷

self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 repeats:YES block:^(NSTimer *timer) {

  [self refreshData];

}];

问题在于 self 强引用 timer,timer 强引用 block,block 又回过头来强引用 self,三层扣成一个环。只要不调用 invalidate,这个环就一直不解,页面关掉了控制器还赖在内存里。

改法也简单,weak 一下把这个环打破:

objective-c

// 我改完之后

__weak typeof(self) weakSelf = self;

self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 repeats:YES block:^(NSTimer *timer) {

  __strong typeof(weakSelf) self = weakSelf;

  if (!self) {  // 页面已经没了,顺手停掉

    [timer invalidate];

    return;

  }

  [self refreshData];

}];

这种错编译能过,跑起来也不报错,等你发现的时候,内存已经泄漏了一堆。

我的经验就一句话:AI 写得越快,我审得越慢。快枪手的准头,还得你自己校。

04

PART

问得最多的是为什么这么写

ASK WHY

用满一年,我发现自己提问的方式整个变了。

以前天天问“帮我写个 xxx”,现在问得最多的是“这段为什么这么写”。

问第一个,你要的是结果。问第二个,你要的是理解。

老项目里经常有那种“为什么要绕这么大一圈”的代码。新人看不懂,老人也未必记得清当年为什么这么写。AI 擅长的是帮你把这段“看着多余”的逻辑,还原出它当年的设计意图。

比如我遇到过一段老代码,做了好几层判断,看着啰嗦。丢给 AI 一问,它推测这几层是在规避某个 iOS 版本的兼容坑。顺着这个思路去翻提交记录,还真对上了。

理解了为什么,我才敢动它。理解不了,我就只能绕着走。绕来绕去,那摊屎山就永远长在那儿了。

05

PART

懂不懂原理,产出差得远

KNOW WHY

这是五个真相里,我觉得最要命的一条。

同一个人,同一个 AI 工具,为什么有人用出神效,有人用出一堆 bug?差就差在工具背后那个人,懂不懂原理。

AI 会一本正经地胡说八道。你要是不懂原理,你根本分不清它哪句是胡说。

它给你一个排序算法,说这个更快,你不懂复杂度,你就信了。它给你一个内存写法,说这样更省,你不懂内存,你也信了。最后它替你做了决定,锅还得你自己背。

这正好接上我之前那篇写的事:

往期回顾

《用 AI 写了一年代码,我把大学课本又翻出来了》

可点击阅读

越用越发现,写代码的门槛是被它拉低了,但“判断代码对不对”的门槛,它给抬高了。

懂原理的时候它是杠杆,撬得动。你不懂原理,它就变成放大镜了,你的无知跟着一起放大,藏都藏不住。

///

LAST

写在最后

LAST WORDS

一年用下来,我对 AI 的感觉变了。刚上手那阵儿觉得神,后来觉得就是个工具,现在嘛,更像是搭伙干活的。

它不会替代你,但它会让你藏不住短板。它能替你干多少活,取决于你懂多少。

奶 爸 悟

AI 把写代码的门槛拉低了,却把判断代码对不对的门槛拉高了。

工具替你省的是力气,替你判断不了的,是方向。

我是码蜂奶爸,十年移动端开发,两个孩子的爸爸。在这里记录移动开发实战和程序员的成长,采技术之蜜,酿成长之糖。

既然看到这里了,如果觉得有用,随手点个赞、在看、转发三连吧。

点赞
在看
转发

THANKS FOR READING

嗡完收工,下期见~ 🐝

相关学习资料