【问题标题】:Maintaining code that is close to software rot维护接近软件腐烂的代码
【发布时间】:2009-05-24 10:07:57
【问题描述】:

假设您是一位幸运的程序员,他继承了接近软件腐烂的代码。 Pragmatic Programmer 中定义的软件腐烂是太丑陋的代码(在这种情况下,是未重构的代码),它被比作没有人愿意修复的破窗户,反过来可能会损坏房屋,并可能导致犯罪分子在其中茁壮成长城市。

但 Joel Spolsky 在 JoelOnSoftware 中重视的代码是相同的,它包含有价值的补丁,这些补丁在其整个生命周期中都经过调试(可能看起来非结构化且丑陋)。

你会如何维护它?

【问题讨论】:

标签: language-agnostic


【解决方案1】:

看看 Michael Feathers 的 Working Effectively with Legacy Code。那里有很多好的建议。

【讨论】:

    【解决方案2】:

    Welc 是一本很棒的书。你当然应该检查一下。 如果你不想等书到了,我可以总结一下我认为重要的部分

    1. 您需要了解您的系统。做一些一次性编码以了解您需要处理的部分。例如。准备好尝试并做一些工作以根据您可能会破坏它的知识来测试系统。 (了解出了什么问题)
    2. 寻找可以打破依赖关系的领域。迈克尔·费瑟斯称这些接缝。在这些点上,您可以借鉴遗留系统并对其进行重构,使其可测试。
    3. 在系统上工作时,随时添加测试。

    【讨论】:

      【解决方案3】:

      你可以做一些事情:

      • 重构代码以使其更易于维护。如果代码也用于功能开发,那么重构将是有意义的。
      • 如果代码是遗留代码并且仅用于修复错误,那么我建议您仅在需要时进行修复。
      • 通常,人们从这些遗留代码中得到的第一印象是它的混乱。给它一些时间并适应它。随着时间的推移,您可能会看到一些正当的理由来解释为什么代码看起来会这样......

      【讨论】:

        【解决方案4】:

        首先,确保您有一个强大的测试程序,并且实际上将由几个人(您、QA、...)再次深入测试它。

        然后,日复一日地花一些时间来改进您必须修改的小部件。关键是要有一个理解“为什么需要更长的时间”的管理层。说明您必须进行重构,这对短期和长期都很重要,请其他开发人员查看现有代码并确认您的论点。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-16
          • 1970-01-01
          • 2020-11-01
          • 1970-01-01
          • 2012-09-10
          • 2018-07-27
          相关资源
          最近更新 更多