Synth Daily

为什么开发者对工具情有独钟?因为工具承载着信任

开发者对工具的信任源于熟练度和可预测性,而新型 AI 编程工具虽然能快速生成代码,却因其不确定性破坏了这种信任。要重建这种信任,仅靠新工具是不够的;关键在于重塑开发流程,强调人类的最终责任,建立明确的协作规范和需求定义,并培育一种能够明智地集成 AI 的文化,从而在新的开发模式中恢复系统的可靠性。

工具是开发者能力的延伸

长期以来,开发者对工具的选择一直存在争论,例如功能强大的集成开发环境 (IDE) 与高度可定制的终端编辑器(如 Vim 和 Emacs)之间的对比。对于经验丰富的用户来说,后者可以成为一种近乎本能的工具。

  • 熟练度建立信任: 开发者投入时间掌握并定制自己的工具,使其成为自己能力的延伸。这种“肌肉记忆”和无意识的能力,让开发者能够信任工具来高效、准确地完成工作。
  • 可定制性至关重要: 像 Vim 和 Emacs 这样的工具因其无限的可定制性而备受青睐,它们可以被精确地塑造成符合个人工作流程的形态。

“我之所以对某些 AI 编程工具持保留态度,是因为我用我的 IDE 更快,我知道它如何工作。我的手指知道该做什么。” - Tricia Gee,开发者生产力倡导者

AI 带来的悖论:效率提升,信任下降

AI 编程,或称“代理式工程”,正在改变开发模式。开发者通过自然语言与终端对话,可以在极短时间内生成整个应用程序。然而,这种效率的提升伴随着信任的侵蚀。

  • 使用率与信任度的反差: 一项开发者调查显示,随着 AI 工具使用率从 76% 上升到 84%,开发者对其的信任度却从 40% 下降到 29%
  • 缺乏可预测性: AI 工具本身是新的,其能力在不断变化,就像一把形状、重量和锋利度都随时改变的刀,很难建立信任。
  • 模糊性对抗精确性: 传统的开发工具,如 IDE 或静态分析器,有明确的功能边界。而 AI 则不同,它使用模糊的自然语言来生成本应精确的代码。

“代码是对解决方案的精确陈述。而英语在表达必须明确无误的事情上是一种糟糕的语言。” - Bjarne Stroustrup, C++ 创始人

当新工具打破旧流程

代理式编程工具从根本上改变了软件开发流程的性质,导致旧流程中建立的信任机制失灵,并产生了新的瓶颈。

  • 失效的配套工具: 围绕旧流程建立的工具(如代码检查器、自动化单元测试、CI/CD)可能不再适用于 AI 生成的代码。
  • 文化与流程的重要性: 工具本身无法修复流程。如果组织文化和行为规范不改变,一个有缺陷的流程即使配上更好的工具,依然是有缺陷的
  • 新的瓶颈:代码审查: AI 能瞬间生成数百行代码,给人工审查带来了巨大压力。审查者要么耗费大量时间,要么只能草草通过。
  • “免费”代码的隐藏成本: AI 生成代码看似免费,但其验证、基础设施运行以及潜在的生产故障成本却非常高昂。

重塑 AI 时代的信任体系

修复因 AI 而破裂的开发流程,不能仅仅依赖工具。核心在于通过改进流程和文化来重新注入信任。

1. 明确人类的最终责任

与其说是“人在回路中”,不如承认人是回路的创造者和所有者。

“人在回路中听起来像是一种怜悯的邀请。我创造了这个回路,我拥有这个回路,我是这个回路存在的唯一原因。这是我的循环!” - Charity Majors, Honeycomb 首席技术官

  • 责任归属: 提交代码的开发者对代码负全责,批准合并请求的人也同样负责。不能将问题归咎于 AI 工具

2. 改进协作与透明度

AI 可能让开发者陷入“一人孤岛”,削弱团队协作。因此,需要建立新的协作规范。

  • 共享工作过程: 建议团队在共享环境中进行 AI 提示词编写,以便所有人都能评论和修改。
  • 过程透明化: 在合并请求中包含与 AI 的对话记录,这能让审查者更好地理解代码的生成思路和解决问题的过程。

3. 将隐性知识显性化

AI 的输出质量高度依赖于输入的明确性。任何模糊之处都可能导致意想不到的结果。

  • 明确需求: 必须在提示词中明确说明所有需求。例如,如果需要为特定架构(如 ARM)构建应用,就必须明确指出。
  • 提供正确上下文: 将公司内部的隐性知识(如资深开发者的经验)整理并验证,作为上下文提供给 AI,以确保代码符合规范。
  • 坚持 DRY 原则: AI 倾向于“写两次所有东西”(WET),导致代码库冗余。应建立机制,促进组件的重用,而不是反复生成。

4. 知道何时不使用 AI

最关键的技巧或许是判断何时应该避免使用 AI。对于已经有可靠确定性解决方案的场景,没有必要用不确定的 AI 来重新发明轮子。

“我们正试图将非确定性系统应用于许多本应使用确定性代码的场景……LLM 不擅长这些,所以我们为什么要把它们当作解决所有问题的锤子?” - Anil Dash

最终,过去的信任建立在人和工具的可预测性之上。AI 的概率性和快速迭代打破了这一点。成功的团队不会是那些生成代码最多的团队,而是那些能够建立有效反馈循环、管理高质量知识库,并通过深思熟虑的流程来保留人类判断力的团队。