维护接近软件腐烂的代码

时间:2009-05-24 10:07:57

标签: language-agnostic

假设你是幸运的程序员,他继承了一个接近软件腐烂的代码。在Pragmatic Programmer中定义的软件腐败是太丑陋的代码(在这种情况下,是无意义的代码),它与一个破碎的窗口进行比较,没有人想要修复它,反过来可能会破坏房屋并导致犯罪分子猖獗城市。

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

你会如何保持这个?

4 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:2)

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

  1. 您需要了解您的系统。做一些一次性编码,以了解您需要处理的部分。例如。准备好尝试做一些工作,根据你可能会破坏它的知识来测试系统。 (了解出了什么问题)
  2. 寻找可以破坏依赖关系的区域。 Michael Feathers称之为接缝。它们是您可以对遗留系统进行修改并重构它以使其可以测试的要点。
  3. 当您在系统上工作时,请随时添加测试。

答案 2 :(得分:1)

你可以做一些事情:

  • 重构代码以使其更易于维护。如果代码也用于功能开发,那么重构将是有意义的。
  • 如果代码是遗留代码,并且仅针对错误修复进行了处理,那么我建议您只根据需要进行修复,并在需要时进行修复。
  • 通常,人们从这些遗留下来的代码中获得的第一印象就是它的混乱。给它一些时间,并对它感到舒服。您可能会看到一些有效的原因,为什么代码会随着时间的推移而出现......

答案 3 :(得分:0)

首先,确保你有一个强大的测试程序,并且实际上将由几个人(你,QA,......)进行深度测试。

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