详细内容或原文请订阅后点击阅览
超越代码审查
不久前,我们还接受了人类需要检查人工智能生成的每一行代码的想法。我们会亲自进行,代码审查始终是严肃软件实践的一部分,阅读和审查代码的能力将成为开发人员技能中更重要的一部分。 [...]
来源:O'Reilly Media _AI & ML不久前,我们还接受了人类需要检查人工智能生成的每一行代码的想法。我们会亲自进行,代码审查始终是严肃软件实践的一部分,阅读和审查代码的能力将成为开发人员技能中更重要的一部分。与此同时,我怀疑我们都知道这是站不住脚的,人工智能会很快生成比人类可以合理审查的更多的代码。理解别人的代码比理解自己的代码更难,理解机器生成的代码更难。在某个时刻(而且这个时刻出现得相当早),你通过让人工智能编写代码而节省的所有时间都花在了审查代码上。这是我们以前学到的教训;几十年来,除了少数专家之外,没有人需要检查编译器生成的汇编代码。而且,正如 Kellan Elliott-McRae 所写,目前尚不清楚代码审查是否证明了成本的合理性。虽然坐在桌子旁检查代码行可能会发现样式问题或实施不佳的算法,但代码审查对于相对较小的问题仍然是一种昂贵的解决方案。
考虑到这一点,规范驱动开发 (SDD) 将重点从审查转向验证,从提示转向规范,从测试转向更多测试。软件开发的目标不是通过人工审查的代码,而是通过人工审查的代码。它的行为符合描述客户需求的明确规范的系统。找出客户的需求并设计满足这些需求的架构需要人类智慧。正如 Ankit Jain 在《潜在空间》中指出的那样,我们需要从询问代码是否编写正确转变为询问我们是否正在解决正确的问题。了解我们需要解决的问题是规范流程的一部分,而从历史上看,我们的行业在这方面做得并不好。
