上周刚写过一篇《我负责的项目实际上已经失控了》,说自己越来越不熟悉手里的系统,很多修改都交给 Codex,自己只看最后能不能跑。
没想到这周,生产环境就出了一个我没检查到的问题。
这次是一个用 XXL-Job 调度的批量处理任务。任务跑了一段时间后,业务发现数据需要调整,让我先停下来。
我在控制台点了“终止”,看到操作成功,就以为任务停了,重新安排了执行时间,没有再确认。
后来远程查看,任务居然还在跑,最后只能通过停止执行实例才结束这次执行。
知道中断原理,却没检查代码
我知道 Java 的 interrupt() 不会强制停止业务代码,需要程序自行处理中断。但这段代码主要由 Codex 生成,我只看了业务能不能跑通,没有检查终止逻辑,也没测试任务能不能中途停下来。
事后让 Codex 检查,它认为循环可能没有及时检查中断,部分异常也可能被当成普通失败处理,导致任务继续执行。具体原因还需要结合实际运行情况确认。
我之前一直觉得自己懂这些,真到用的时候,却连代码有没有处理都没看。
几个系统来回切,我对业务越来越不熟悉
现在工作里经常要在几个系统之间来回切,需求一个接一个。这个系统刚改完,另一个系统又有问题,很难留出时间把每次涉及的业务都理清楚。
很多需求就这样交给 Codex 分析和实现,我看主要功能能跑,就继续处理下一件事。代码一直在改,但我对自己负责的系统和业务却越来越不熟悉。
越不熟悉,就越依赖 Codex 帮我看代码、做修改,也越难判断它有没有遗漏。像这次任务能不能中途停止,我既没有提前检查,也没有在点完“终止”后确认实际结果。
出了问题,负责的还是我
需求紧、系统多,是我现在遇到的实际情况。这次问题也让我看到,照着这种方式继续做下去,自己对系统的了解和检查很容易跟不上。
代码是 AI 写的,上线和操作是我负责的。出了问题,业务找的还是我。AI 不会替我背锅,也不会承担后果,该检查、该确认的地方,还得我自己来。