← 最新论文
💻 computer science

How Do Developers Use Migration Guides? A Case Study of Log4j

本文通过对 Log4j 的案例研究,探讨了迁移指南的提供与实际使用情况,揭示出开发者经常在拉取请求中引用整份指南,并在整个迁移生命周期中利用这些资源,而不仅限于主要版本更新期间。

原作者: Takahiro Monno, Kazumasa Shimari, Tetsuya Kanda, Kazuma Yamasaki, Kenichi Matsumoto

发布于 2026-04-28
📖 1 分钟阅读☕ 轻松阅读

原作者: Takahiro Monno, Kazumasa Shimari, Tetsuya Kanda, Kazuma Yamasaki, Kenichi Matsumoto

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象你是一位厨师,多年来一直使用某个特定品牌的香料烹饪。突然,这家香料公司发布了一个新版本。在新版本中,罐子的外观变了,标签变成了新语言,而且你舀取香料的方式也改变了。如果你继续使用旧方法,你的菜肴可能会毁掉。

为了帮助像你这样的厨师,香料公司编写了一份“迁移指南”。你可以把这份指南想象成一本特殊的操作手册,上面写着:“嘿,如果你过去是做 X,现在你必须做 Y。以下是如何切换的具体步骤。”

本文是一项研究,研究人员希望回答两个重大问题:香料公司真的会编写这些指南吗? 以及当厨师们试图修复他们的食谱时,他们实际上是如何使用这些指南的?

以下是他们的发现,他们以著名的"Log4j"香料罐(一种非常流行的计算机程序工具)作为主要示例。

1. “缺失手册”的问题

首先,研究人员查看了数百个软件库(即“香料公司”),以观察它们在做出重大变更时是否提供了这些指南。

  • 发现: 事实证明,大多数公司在这方面很懒惰。大约 92% 的公司会编写“发布说明”(这就像新功能列表,例如:“我们增加了一个新盖子!”)。但只有约 28% 的公司会编写正式的“迁移指南”(即关于如何适应的分步手册)。
  • 比喻: 这就像公司给你发了一张传单,上面写着:“我们换了罐子!”却忘了告诉你如何打开新罐子。这让开发者感到困惑和束手无策。

2. 开发者实际上如何使用指南

既然研究人员发现 Log4j 确实有一份指南,他们决定观察开发者如何使用它。他们查看了 64 个真实世界的项目,其中人们正在尝试更新他们的代码。

以下是“厨师”们使用手册的方式:

  • 谁在使用它? 主要是编写代码更新的人(即“拉取请求作者”)。正是他们在说:“我正在更改食谱,这是我用来确保没有搞砸的手册。”
  • 他们把链接放在哪里? 他们通常将链接粘贴在更新请求的主描述中,而不是评论里。这就像把操作手册的网址直接写在食谱卡片上,以便品尝者(审查者)可以检查它。
  • 他们是通读全文还是只看某一页? 这是一个巨大的惊喜。83% 的情况下,开发者链接的是整个指南。他们没有链接到像“如何打开罐子”这样的特定页面。他们只是说:“这是整本书,祝你好运。”
    • 为什么? 研究人员认为,指南往往难以导航,或者开发者只是偷懒,希望审查者能找到他们需要的内容。

3. 这不仅仅用于大切换

研究人员原本以为,开发者只有在进行大规模、令人恐惧的升级时(例如从 Log4j 版本 1 切换到版本 2)才会使用这些指南。

  • 发现: 他们错了。即使开发者没有更新版本号,他们也有 42% 的时间会使用指南。
  • 比喻: 想象你已经换到了新的香料罐。但一周后,你发现如果摇晃得太猛,新罐子会漏。你回到手册中,找出如何修复泄漏。
  • 现实: 开发者使用这些指南不仅是为了初始切换,还用于更新完成很久之后的维护故障排除。这份指南是他们在几个月里一直放在口袋里的“生命线”。

这意味着什么?

研究人员提出了两点主要建议来解决这个问题:

  1. 对于指南编写者: 停止只写大段文字。由于开发者经常链接到整个指南,指南需要更好的“路标”(标题和链接),以便人们可以直接跳转到他们面临的具体问题。此外,由于人们后来会使用指南来修复错误,指南应专门包含一个“更新后故障排除”部分。
  2. 对于工具制造者: 由于很少有公司编写这些指南,我们需要机器人(AI)替他们编写。如果计算机可以查看代码更改并自动起草“迁移指南”,这将为大家省去很多麻烦。

简而言之: 迁移指南至关重要,但它们很罕见且往往难以使用。开发者将它们视为多年随身携带的瑞士军刀,而不仅仅是一次性的说明单。为了让软件更新不那么痛苦,我们需要更多的指南,并且它们需要更易于导航。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →