您解锁手机以查看航班,但应用程序挂在白屏上。您在网站上单击“立即购买”,按钮变为灰色,但没有任何反应。您尝试配对智能灯泡,需要进行固件更新,但失败了 3 次。
如果你觉得技术变得越来越脆弱,那你就不是在想象。
在过去的十年里,科技行业一直奉行“快速行动,打破常规”的口号。独立分析师现在正在计算损坏物品的成本。虽然硬件已经呈指数级更快、更可靠——现代旗舰手机是物理奇迹——但运行在其上的软件感觉越来越被胶带和祈祷粘合在一起。
这不仅仅是对从未存在过的“黄金时代”的怀念。这是一个可测量的统计趋势。来自主要代码分析公司的新数据揭示了一个令人不安的模式:随着编码过程变得更加自动化,系统的结构完整性正在下降。市场正在沙地基上建造数字摩天大楼,但裂缝已经开始显现。
速度熵
根本问题是软件交付经济学的转变。二十年前,交付软件是一种物理行为。您将“Gold Master”刻录到 CD-ROM 或 DVD,将其放入盒子中,然后用卡车运到商店。如果该光盘存在严重错误,则召回成本将是天文数字。质量保证 (QA) 并不是一种奢侈;而是一种奢侈。这是企业生存的必需品。
如今,交付摩擦为零。通过无线 (OTA) 更新和持续集成/持续部署 (CI/CD) 管道,开发人员可以在几分钟内将代码推送给数百万用户。这有效地将风险从供应商转移到了用户。
当您可以将前 100 万用户视为 Beta 测试人员时,为什么还要花钱聘请专门的 QA 团队呢?
这种理念在 DevOps 圈子中通常被称为“左移”(意味着开发人员应该尽早进行测试),但它却自相矛盾地导致了根本没有人真正在“用户级别”进行测试的情况。开发人员测试他们的特定功能(单元测试),但数千个微服务之间的复杂交互(“集成”层)却是偶然的。
但在过去的三年里,一种新的助燃剂给这股大火注入了新的助燃剂:人工智能。
AI 代码质量悖论
GitHub Copilot、Cursor 和 Google 自家工具等人工智能编码助手的承诺是一场生产力革命。现在的采用已接近普遍:Stack Overflow 的 2025 年开发者调查发现,超过 84% 的开发者正在使用或计划使用 AI 工具。然而,对这些工具的信任度却下降至 29%——一年内下降了 11 个百分点。
这种差距的存在是因为“编写”代码从来都不是瓶颈。 阅读并维护它。
GitClear 的 2026 年“可维护性差距”报告基于 2023 年至 2026 年分析的 6.23 亿次代码变更,给出了衰退的确切数字。重复代码块(按每百万更改行测量)从 2023 年的 40.3 个攀升至 2026 年迄今为止的 73.0 个,增长了 81%,是有记录以来的最高水平。复制/粘贴代码从 2022 年的 9.4% 上升到 2026 年上半年的 15.7%。与此同时,“移动”代码(重构的标志,保持系统连贯性的内务管理)的份额在 2022 年占更改行的 21%,到 2023 年下降到 13%,到 2026 年迄今为止已直线下降到仅 3.8%。现在,开发人员重复代码的可能性大约是重构代码的五倍。
“霰弹枪编码”效果
人工智能模型是概率引擎。他们预测下一个最有可能的标记。当开发人员要求人工智能“编写一个函数来解析该日期”时,人工智能会生成一个全新的定制函数。它不知道公司共享库的三个文件夹中已经存在一个完美的日期解析器。
结果是一个代码库充满了相同逻辑的数千个重复的、略有不同的实现。这打破了“DRY”(不要重复自己)原则,这是软件工程的神圣法则之一。当在日期解析中发现错误时,您可以在一处修复它,但其他 50 个 AI 生成的版本仍然损坏。
业界正在见证代码库大小的大幅膨胀,而功能却没有相应增加。一个简单的应用程序曾经有 10,000 行代码,现在变成了 50,000 行,不是因为它做得更多,而是因为它因人工智能生成的样板而变得臃肿。
正确性的错觉
第二个问题是合成代码的“脆弱性”。生成系统在语法(代码的语法)方面表现出色,但在语义(代码的含义)方面却很困难。他们生成的代码“看起来”很完美;它可以编译并运行,但通常无法处理边缘情况或罕见的错误状态。
编写支付处理系统的人类开发人员会考虑,“如果在卡收费后但在记录订单之前网络突然掉线怎么办?”他们编写代码来处理事务状态。除非明确提示,人工智能通常会默认走“快乐之路”。它假设一切正常。
这会导致“Heisenbugs”,当您尝试研究它们时,这些错误会消失或改变,通常是由竞争条件和仅在负载下出现的未处理状态引起的。
甚至有证据表明,生产率的提高本身在一定程度上是一种幻觉。 METR 研究小组在 2025 年进行的一项随机研究发现,在自己的代码库中工作的经验丰富的开发人员“相信”人工智能使他们更快,而测量结果是他们在这些任务上的速度慢了约 19%。这些工具给人的感觉很快,因为它们生成文本的速度很快。调试账单稍后到达。
微服务死亡螺旋
与人工智能热潮并行的是架构向微服务的转变。现代应用程序不是由一个大型应用程序(“整体”)组成,而是由数百个通过网络相互通信的小型独立服务组成。
从纸面上看,这很棒。它允许团队独立工作。实际上,它将每个函数调用变成可能失败的网络请求。
在单片应用程序中,函数 A 调用函数 B。它 100% 的时间都有效,因为它们位于相同的内存空间中。在微服务应用程序中,服务 A 向服务 B 发送 JSON 数据包。
- 网络可能很慢。
- 服务 B 可能正在重新启动。
- JSON 格式可能略有变化。
这些交互的复杂性呈指数增长,而不是线性增长。如果您有 10 个服务,则有 45 个可能的连接对。如果您有 100 项服务,那么您就有 4,950 项。许多现代企业应用程序都有数千个。
工程师们构建的系统超出了任何一个人的认知能力。没有人知道整个事情是如何运作的。当出现问题时,调试不是一个逻辑推导过程;而是一个过程。这是通过分布式日志进行的考古挖掘。
用户体验的回归
作为用户,这对您来说有何体现?
- 旋转轮:由于应用程序更多地依赖每次交互的实时数据获取,因此 UI 变得依赖于网络稳定性。
- “出了问题”的通用错误:由于分布式系统中的错误处理很复杂,因此应用程序通常默认为通用的“包罗万象”的错误消息,但不会告诉您任何信息。
- 功能腐烂:曾经工作的功能突然停止,或者工作不稳定,因为更新了三层深度的依赖项并且没有人检查兼容性。
生态系统正在进入“概率软件”时代。它可能有效。大多数时候。
出路:可靠性作为一种特性
钟摆开始向后摆动。在 B2B 领域,公司逐渐意识到“5 个 9”(99.999% 的正常运行时间)是值得付出代价的竞争优势。
市场正在看到“平台工程”团队的出现,这些专门的团队的唯一工作就是驾驭这种复杂性。他们正在构建强制标准化的内部开发人员平台,本质上是迫使人工智能助手使用经过批准的库,而不是幻想新的库。
此外,新一代“Agent QA”工具正在兴起。如果人工智能是问题,那么它也可能是解决方案。新的自主测试代理可以像人类用户一样导航应用程序、单击按钮、填写表格和报告错误(24/7)。与过去脆弱的自动化测试不同,这些代理“看到”屏幕并可以识别按钮何时损坏,即使代码说它应该可以工作。
判决
软件感觉有很多问题,因为十五年来该行业优先考虑速度而不是稳定性。科技公司为每位开发人员提供了一台法拉利发动机(AI),但取消了刹车(QA)。开发团队目前正在撞上护栏。
下一个伟大的科技公司不会是那些提供最多功能的公司。他们的软件会简单、安静地“运行”。在数字混乱的世界中,可靠性是终极奢侈。
在那之前,您可能需要不断刷新该页面。第二次可能会起作用。大概。
资料来源
- gitclear.com The Maintainability Gap — 2026 AI Code Quality Research
- stackoverflow.blog Closing the developer AI trust gap (Feb 2026)
- gitclear.com GitClear AI Code Quality Research 2025
- metr.org Measuring the Impact of Early-2025 AI on Experienced Developer Productivity
- cloud.google.com DORA Metrics 2024 State of DevOps
- mckinsey.com McKinsey Top Trends in Tech 2025
🦋 Bluesky 讨论
在 Bluesky 上讨论