你什么时候说代码是旧代码?

时间:2008-09-23 03:55:31

标签: legacy

任何有用的指标都没问题

15 个答案:

答案 0 :(得分:12)

我在代码中寻找的一件事是单元测试。这将给予重构它的自由。因此,如果代码没有测试,我认为它是遗留代码。

答案 1 :(得分:8)

如果代码:

  1. 已被实现相同或功能或更好的新代码所取代
  2. 未被当前系统使用
  3. 很快就会被其他东西取代
  4. 已因历史原因存档
  5. 当供应商停止支持它时

答案 2 :(得分:6)

我们使用术语“遗产”来指代仍在使用的任何代码,这些代码使用我们已停止积极开发的技术开发。

我们宁愿使用更新的工具重写代码而不是在当前状态下进行修改。

答案 3 :(得分:5)

Micheal Feathers,出色的“有效使用遗留代码”的作者,将其定义为任何没有测试的代码。

答案 4 :(得分:5)

更好的问题可能是将一段代码标记为非遗产代码。

对我来说遗产意味着不可改变。所以,一旦你不再“能够”改变它,那就是它的遗产。

这种能力是否被固定的要求所消除,对破坏的恐惧,知识的丧失或其他一些影响在很大程度上是无关紧要的。

一个相关的说明是,我认为我没有使用遗留的确切词,因为它激起了太多的情感才有用。

答案 5 :(得分:4)

我不相信有明确的答案,但我确实认为代码是遗留代码的可能性随着不想触及它的人数增加而且更改代码的可能性会导致它断裂。

答案 6 :(得分:1)

术语“遗留代码”是主观的,可能是一个加载的术语。但总的来说,我赞同这样的观点,即遗留代码是一个不可单元测试的代码,因此难以重构。

答案 7 :(得分:1)

在我看来,所有编写的代码都是遗留代码。原始意图可能需要一些时间,所有关于代码的决定都会被遗忘,但迟早你无法想象他们在编写代码时的想法。你自己永远不会写遗留代码,对吗?

自开发人员离开建筑物以来,使用单元测试或某些措施(如秒)并不能真正衡量代码是否为遗留代码。传统代码可能有一组很好的单元测试和注释,并且可能已经过严格的代码审查和其他分析。这并不意味着代码仍然与手头的程序相关。它只是表明代码可能写得比较好。如果它不再相关,代码实际上会使解决程序开发的问题变得更加困难。

答案 8 :(得分:1)

旧版代码在很多地方被定义为“没有测试的代码”。我不认为它们在测试类型中是特定的,但总的来说,如果你不能在不担心未知事件发生的情况下对代码进行更改,那么很快就会发生变化。

请参阅“Working Effectively with Legacy Code

答案 9 :(得分:0)

我可能错了,但我认为没有确定的指标。

通常一段代码被认为是遗留的,当它已经看到至少5-6个发布周期(可能更多)。通常情况下,原始执行者不再存在,代码将通过。

维护

答案 10 :(得分:0)

开发者离开场地差不多几秒钟。 :)

如果...

银行没有新功能的资金

您找不到任何承认需要修复项目的人

您拥有的项目的源代码已经过了MIA

...然后你正在处理遗留代码。

答案 11 :(得分:0)

  • 当代码足够老时,你从未见过最初编写代码的开发人员。
  • 不再支持第三方库时。

答案 12 :(得分:0)

通常人们会将某些内容称为遗留代码,当时还没有人熟悉或感觉很舒服维护代码。

单元测试使不熟悉代码的人更容易深入研究,因此理论上它有助于防止代码变成“遗留”。

答案 13 :(得分:0)

通常,当代码是遗留代码时,它会以不同的方式进行更改。人们害怕改变它,但变化往往是快速和肮脏因为没有人理解完整的后果。可能会出现代码重复问题,因为人们不希望承担与更深层次更改相关的风险。

因此,在这种情况下,情况可能会变得更糟,越来越高。

答案 14 :(得分:-1)

我不知道可以用来确定某些东西是否是“遗留代码”的任何真实指标,但是比刚刚编写的任何东西都可以被认为是遗留的。遗留代码对不同的人/组织意味着不同的东西,所以它确实有些主观。