最近我越来越明显地感觉到一件事:
我负责的项目,实际上已经开始失控了。
功能还在正常跑,需求也还在继续上线,业务提的问题大多数最后也都能解决。
问题在于,我已经越来越说不清楚这个系统里面到底发生了什么。
现在的工作方式已经完全变了
每天上班以后,我基本就是把 Codex 打开。
需求来了,把需求描述给它。
老功能要改,把相关代码和问题交给它。
出了 Bug,再把现象描述清楚,让它继续处理。
我现在自己真正动手写代码的时间已经越来越少。
以前改一个老功能,我至少会先看一下原来的代码,把业务流程大概理清楚,再开始动。
现在很多时候做不到。
手里有几个系统来回切,这个需求刚做完,另外一个系统又有问题。
需求给的时间也越来越紧。
如果每次修改之前都重新把业务理一遍,时间根本不够。
所以最后就会变成最直接的方式:
把需求交给 Codex,让它自己分析,然后直接改。
能跑,我就往后走了
Codex 改完以后,我会看一下结果。
页面正常,接口正常,没有明显问题,就继续往后走。
有些功能甚至上线以后,只要业务没有反馈,我就默认它没问题。
如果后面又有人提 Bug,就再回来,把问题重新描述给 Codex,让它继续改。
现在很多需求基本就是这样一轮一轮往前推进。
以前我还会觉得,代码是不是自己写的没那么重要,只要最后结果由我来确认就行。
最近连这一步也在慢慢变弱。
AI 生成代码太快了。
它几分钟能改完一堆东西,我想真正看懂这些代码为什么这么改、有没有副作用、会不会影响其他逻辑,需要的时间远远超过它生成代码的时间。
而现实里没有这么多时间留给我。
一个需求结束,马上就是下一个。
最后我能做的,往往就是看一下结果。
没问题,就算过了。
每个问题都解决了,但我对系统越来越陌生
真正让我觉得项目开始失控的,是这种变化一直在累积。
单独看每一次修改,好像都没有什么大问题。
这个 Bug 修掉了。
那个功能能用了。
业务提的问题也解决了。
可时间久了以后,我开始发现,自己对整个系统的理解越来越弱。
以前自己写功能的时候,哪怕代码写得一般,至少我知道为什么要这么写。
数据从哪里来,要流到哪里去,哪些地方有影响,我脑子里多少是有印象的。
现在很多修改都是 Codex 完成的。
我知道最后结果能跑,但中间到底加了什么判断、做了什么兼容、改了哪些调用,有时候我自己也没有认真看进去。
最麻烦的是,这种情况会继续叠加。
这一次我没看。
下一次 Codex 又会在这次修改的基础上继续改。
再下一次,我对这里就更不熟。
最后就会变成一个循环:
越不熟,越依赖 AI;越依赖 AI,自己对项目就越陌生。
我现在反而不太担心 AI 写错
以前大家讨论 AI 编程,经常会问:
AI 会不会写错代码?
会不会有幻觉?
会不会生成有问题的逻辑?
这些问题当然都存在。
但我现在更在意的是另外一种情况。
AI 大部分时候其实能把问题解决掉。
也正因为它经常能解决,我才越来越敢不看。
每一次局部修改都可能是对的。
功能也都能正常运行。
可这些修改不断叠加以后,我已经越来越难判断整个系统现在到底变成了什么样。
前几天我突然意识到:
我现在其实是在维护一个每天都在变化,但自己已经越来越不熟悉的系统。
以前不懂业务会卡住,现在不会了
这一点我觉得影响很大。
以前如果一个老功能我完全看不懂,很多时候是真的改不下去。
至少要先研究代码、问业务、把流程弄清楚一点。
现在即使我不懂,也可以先让 Codex往前走。
它可以自己看代码、找调用、分析逻辑,然后给出修改。
短期来看,这当然提高了效率。
很多以前需要花很久才能处理的问题,现在确实能更快解决。
可长期下来,我也越来越少被迫去真正理解这个系统。
项目多、时间紧、需求频繁切换,本来就已经很难让人沉下来。
AI 又让“先别理解,直接把问题解决掉”变得太容易了。
所以现在我会觉得,项目好像一直在正常往前走,但我对它的掌控感却越来越弱。
我不知道这种工作方式最后会变成什么
我现在也不知道这算不算 AI 编程发展以后很正常的一种工作方式。
也许以后程序员本来就不需要理解每一段代码。
只需要把需求描述清楚,最后确认结果就行。
但至少以我现在的状态来看,这里面已经出现了一个很明显的问题:
AI 写代码的速度远远超过了我理解代码的速度。
当需求越来越多、时间越来越紧以后,我最后只能不断依赖它继续往前推进。
项目还能跑。
功能也还在上线。
可我自己已经越来越不知道里面到底发生了什么。
所以如果现在让我形容手里的项目,我会觉得:
它没有挂,但我对它已经快失去控制了。