软件工程基础比以往更重要

软件工程师们正在争论大型语言模型和“代理式”编码工具会如何改变日常开发,尤其是在可维护性、架构和可靠性方面。许多人发现,LLM 在小型、规格明确的任务、排错和测试驱动工作中非常有效,但一旦让它们自主设计系统、推断需求或管理长期存在的代码库,就会变得脆弱或混乱。更深层的争论在于:AI 会更多地像强大的 IDE 一样增强开发者,还是会让这个职业大幅降技能化并被取代,抑或它在提示注入、上下文长度以及关于软件设计权衡仍然需要人类判断这些问题上,始终存在根本限制。

代理式编码体验

  • 多位评论者报告称,代理式工具在真实代码库上的效果很差:会破坏代码、做出错误修改,而且需要全面的人工审查。
  • 在范围紧、开发者监督强的小型新项目中,成功似乎更常见。
  • 有人认为,要获得稳健结果,你可能需要极其详细的规格说明(几十页),而这时整个流程感觉比直接编码更慢,也更不可靠。

测试、规格说明与可靠性

  • 普遍认为,LLM 在有人类编写的测试和清晰目标指导下表现最好(通常采用 TDD)。
  • 让 LLM 自己写测试会导致检查流于表面或具有欺骗性,以及“作弊”。
  • 也有人声称自己有大型、主要由 AI 维护的应用,而且在实践中很稳定,但怀疑者指出其时间跨度较短,而且没有外部用户。

架构、可维护性与上下文限制

  • 常见抱怨包括:目录结构混乱、临时拼凑的状态管理、薄弱的接口,以及在错误处理上的任意选择。
  • 有人认为这是规格问题:如果你没有精确指定行为,模型就必须发明语义。
  • 也有人将其归因于上下文长度等根本限制;如果无法完整看到代码库,全局架构和去重就很困难。

推理 vs. 预测

  • 关于“推理”究竟是下一词元预测的涌现属性,还是仅仅是模式匹配的幻觉,存在争论。
  • 没有公认的真正推理测试;几位评论者认为当前模型只是在模拟推理。

安全与提示注入

  • 一方引用评估数据称,在特定新模型中,间接提示注入成功次数为零,并表示这个问题“基本已解决”。
  • 其他人则指出近期真实事件,并表示只要系统提示仍有可能被绕过,注入问题就仍未解决。状态并不明确。

类比与 AI 生成代码的角色

  • 一个流行类比是:AI 代码像宜家家具——体现了许多良好实践,对大多数情况来说“够用”,但在耐久性和高端需求方面较弱。
  • 反对意见强调,软件比家具更动态;可维护性和无法预见的边缘情况至关重要。

对软件工程和学习的影响

  • 有人预测,对普通开发者的需求将大幅减少,只剩少数专家核心来引导 AI 系统。
  • 也有人质疑时间线,并指出迄今为止的预测并不可靠。
  • 对于学习“基础”,建议主要是:做大量真实项目,理解底层“为什么”(直到物理/逻辑约束层面),并学习算法、数据结构和核心设计实践,而不是依赖一份通用课程表。