与 LLMs 共进:来自《侏罗纪公园》CGI 革命的启示

与 LLMs 共进:来自《侏罗纪公园》CGI 革命的启示

“灭绝”悖论:从定格动画到 LLMs

软件工程领域目前正经历着一段关于大语言模型 (LLMs) 角色的深刻焦虑期。这种紧张关系反映了电影史上一个关键时刻:Jurassic Park (1993) 的制作。

导演 Steven Spielberg 最初聘请定格动画大师 Phil Tippett 使用 "go-motion" 技术来制作电影中的恐龙。然而,当 Industrial Light & Magic (ILM) 制作出 T. rex 的逼真 CGI 测试片段时,Tippett 留下了那句著名的感叹:“我觉得自己要灭绝了。”

尽管最初受到了这种冲击,但 Tippett 并没有因此过时。他进行了进化,共同开发了 Dinosaur Input Device (DID)——一种将人类表演转化为数字动画的物理骨架。通过将他在生物运动方面的专业知识与新技术相结合,Tippett 在 1994 年赢得了奥斯卡最佳视觉效果奖。对于现代程序员来说,教训是显而易见的:避免灭绝的路径不是抵抗,而是进化。

从编码转向解决问题

编码是一种工具,而不是价值的来源。正如 John Carmack 所言:“解决问题是核心技能。传统编程所要求的纪律和精确度将继续作为有价值的可迁移属性,但它们不会成为准入门槛。”

为了在 AI 时代进化,开发者应该关注以下转变:

  • 从手动编写到架构监督: 手写每一行代码已不再是常态。现在的价值在于阅读代码、理解复杂架构以及不断迭代 AI 生成的输出,直到其达到生产标准。
  • 从数量到质量: 虽然 LLMs 可以将输出量提高 1000 倍,但它们也可能产生“无法解读的混乱”或幻觉。工程师的角色是充当质量过滤器,确保速度不会以牺牲可维护性为代价。
  • 从依赖第三方库到自定义实现: LLMs 使从头开始实现中等复杂度的函数(例如,一个 Levenshtein distance 函数)变得可行,从而减少了对臃肿的第三方依赖的需求。

AI 集成开发实践策略

将 LLMs 集成到专业工作流中需要一种结构化的方法来保持一致性和质量。

建立 Agent 风格指南

为了防止“氛围编码” (vibe-coding)(即盲目接受 LLM 输出),工程师可以维护一份风格指南(例如 CLAUDE.mdGEMINI.md),供 AI agent 效仿。建议的约束包括:

  • 避免魔术数字: 使用常量或枚举 (enums)。
  • 减少缩进: 利用早期返回 (early returns) 和 continue 语句来避免“箭头反模式” (Arrow Anti-Pattern)。
  • 参数类型化: 使用枚举 (enums) 而不是布尔值来处理函数参数,以提高清晰度。
  • 分层: 严格遵守架构层级,而不进行“穿透式”操作。
  • 可读性: 在逻辑块之间使用空行,并提供简洁的注释来解释“是什么”和“为什么”。

提高代码审查的门槛

由于 AI 降低了编写代码的精力,对最终交付物的期望应该随之提高:

  • 提交信息 (Commit Messages): 不再有借口写出糟糕的提交信息。LLMs 可以用来将变更总结为专业的、祈使句格式(例如,“Fix bug” 而不是 “Fixed bug”)。
  • PR 粒度: 在 AI 的协助下,将大型 PR 拆分为更小、可审查的块现在变得轻而易举,这应当成为一项要求。
  • 自动初步审查: 在人类审查员看到代码之前,使用集成 LLM 的审查工具来捕捉基础错误和风格违规。
  • 严格测试: 由于使用 AI 进行大规模重构变得更加普遍,单元测试和 CI 测试比以往任何时候都更加关键,以捕捉人类和 LLMs 都可能遗漏的破坏性变更。

反方观点与风险

虽然“进化或死亡”的叙事占据主导地位,但工程界内部仍存在一些关键的风险和反方观点:

“GenAI 提供的交易是:结果充其量是平庸的,平均而言它会产生垃圾 (slop),但它会做得非常快……大多数人并不想要更多的软件,他们想要的是更少、更好用的软件。”

关键担忧:

  • 质量瓶颈: 一些开发者认为,审计每一行 AI 代码以确保其无误且符合架构的时间,会产生一个瓶颈,从而抵消了生成速度带来的收益。
  • “测试-代码循环”谬误: 存在一种风险,即 LLMs 生成的测试仅仅是匹配生成代码的行为,而不是在测试意图中的业务逻辑,从而产生一种虚假的安全感。
  • 精神疲劳: 在不同项目中管理多个 AI agents 可以导致显著的“上下文切换”和精神倦怠。
  • 手艺的丧失: 有一种哲学上的担忧,即“将线索编织在一起”的乐趣(手动编码的行为)正被“平庸的压倒性胜利”所取代。

结论:软件生产的新模式

我们正在回归一种类似于 1990 年代的模式,即小型、高能力的团队(甚至是个体)可以生产出以前需要大型组织才能完成的专业级软件。通过将 LLMs 作为探索、架构分流和样板代码生成的工具——同时保持严格的人类主导的质量标准——开发者可以从感到“灭绝”的威胁中解脱出来,成为数字创作新时代的监督者。

Sources