AI写代码后,你还拥有对代码的理解吗
「随着AI编程代理将软件开发成本推向零,开发者正面临新问题:无需理解代码就能生成代码,但理解仍是质量与安全的责任。文章探讨了理解成本被忽视的现状,并呼吁将可理解性作为AI时代软件设计的首要目标,让拥有代码成为自觉选择。」
编程代理正在将编写软件的成本不断推向零。这当然有价值,因为编写代码历来是交付软件过程中最耗时的一环。相比之下,测试、文档、打包以及其他与代码相关的工作,在许多项目中消耗的精力反而较少,甚至常常被完全省略。
但写作代码这件事,一直捆绑着另一个被我们习以为常的部分:理解软件。除了最基础的计算机科学作业,你很难在完全不理解自己写的东西的情况下,还能从教授、老板或客户那里拿到及格分。这种理解能力被我们视为理所当然,因为我们很少需要把它与写代码本身区分开来。市面上有大量关于如何设计系统以便他人理解的讨论,但这里谈论的是理解我们自己的代码,那些我们自己写下的代码。因为理所当然地,你当然理解自己的代码,对吧?
任何有编程经验的人,都经历过这样的谦卑时刻:翻出自己很久以前写的代码,看着它纳闷自己当时到底在想什么。但在写下那些代码的那一刻,你确实理解它,也能够推理它的逻辑。
现在,代理替我们完成了写作的部分,理解这件事变得可有可无。甚至可以让代理去审查和测试代码,这样一来,我们连那些费劲的思维模型都可以一并省掉。
我们从未需要把理解自己的代码当作一项独立于写作的成本,因为写作的过程在很大程度上迫使我们理解了它。但如今这个隐含关系被打破了。
如果你的应用足够低风险,那没问题,尽管去用AI生成代码。作者自己也在一次性个人工具和几个有趣的小项目上这么做过,那些项目以前只会永远躺在“有朝一日”的清单里。
然而,当你构建软件时,你就拥有它。这不仅仅指知识产权意义上的拥有,你还承担了它的质量和安全责任,以及日后调试、运营、维护和迭代它的义务。当你使用AI构建软件时,你真的准备好承担这些了吗?新的问题不再是“我们能不能构建这个”,而是“我们是否愿意拥有它”。这至少应该是一个有意识的决定,而不是等代码已经属于你之后才发现的责任。
人类对生成代码的理解,正日益成为新的瓶颈。这个结论并非孤例。显而易见,AI可以成为一台复杂性制造机。它能以极高的速度生成结构复杂、逻辑交错且难以追踪的代码,远比人类手写所能达到的复杂度更高。这带来的后果是,即便每行代码都“正确”,整体系统也可能变得无人真正理解。
作者最近一直在思考,如果把“保持软件对人类可理解”作为AI时代的一等设计目标,软件会变成什么样。这不意味着所有时候都需要理解应用的每一行代码,而是说要设计出让单个部件可被理解、其边界允许人类放心地放大缩小并在多个层级上进行推理的系统。沿着这个方向,已经催生出一些有趣的想法,并且仍在持续发展之中。
当AI可以无休止地生成代码,人类的认知负担并不会消失,只会从写代码环节转移到理解和维护环节。接受这份转移,还是主动设计对抗它,将是每个开发者即将面对的自觉选择。
来源:Heooo AI工具导航