我想知道人们删除未使用代码的最佳做法。就个人而言,我喜欢删除(不只是评论)任何当前没有使用的东西。但我不确定要走多远。
以此为例(虽然我对一般性讨论感兴趣)。在我的项目中,我有十几个UserControls。对于后来获得的功能,我在其中一个UserControl上实现了几个方法和属性。附加代码不是特定于该功能,但需要支持它。以后它可能会有用。
这同样适用于当前未使用的UserControl。我应该删除它们还是保留它们?
编辑:不用说(或者我认为会这样)我们正在使用源代码管理。
答案 0 :(得分:36)
首先要记住的是所有代码都应该在源代码管理中。
考虑到这一点,您当然希望删除过时的代码而不是仅仅将其注释掉。任何长度的注释代码块都是危险的,至少有两个原因:
如果您真的需要删除的代码仍然可用,但它不再混乱您的工作副本。如果您真的担心旧代码的可发现性,您可以留下注释,表明代码已被删除,以及您需要找到它的修订号。在一行中,这比实际代码块使用的要好得多,而且这个代码被允许失效,以及它已经失效的时间更清楚了。
答案 1 :(得分:5)
如果您使用的是源代码管理系统,删除代码是我的首选选项。
使用当前代码时不会妨碍您,如果您再次需要它,您将始终在存储库中拥有代码。
答案 2 :(得分:5)
一段代码可以有两种状态 它是活动的,运行的和测试的,在这种情况下它应该在源控制中 或者它已经过时,你无法想象任何人想要再使用它,仅仅因为它已经过时了。在这种情况下,应删除它。
不擦除代码以便“其他开发人员可以轻松找到它”是保持代码处于活动状态并进行编译的完美理由。不要担心库的大小,链接器会删除任何未使用的文件。
如果您正在删除代码并想要警告其他人那里的代码,并且因为它被删除,那么他们不会再犯同样的错误,那么就可以提出好的评论。
答案 3 :(得分:2)
我的猜测是,即使你评论它存储在存储库中,它也会被重写而不是某人回过头来抓住它。
并不是说我在许多地方工作过这个“没有代码遗留”的政策(只有一个),但我从来没有看到有人回到存储库并得到一些旧代码。
然而,除了小块,我从来没有见过有人取消别人的代码!
如果你想保存它,我会让它完全实现并经过测试(检查测试!)但是如果需要新代码则会改变。
我只需要“开启”就可以获得不需要的代码,这是一种非常好的感觉(并不总是可以完成)。
如果你不能让它完全正常运行并经过测试,那么就剪断它,然后让下一个人重写它。
答案 4 :(得分:2)
我通常会让死代码闲置一段时间,直到它的使用稳定下来。我将不再使用该功能了。那时,我将其删除。
答案 5 :(得分:1)
我也是删除未使用代码的粉丝。
如果我知道代码后来有用,我在从trunk中删除代码之前创建了一个分支(我们正在使用subversion - 因此创建分支非常便宜且容易)。这使我能够轻松地将代码返回一次/如果需要的话。
例如,如果您有一个新功能,该功能将无法完成发布,此过程允许从主干中删除部分功能,但是一旦您完成它就可以将其添加回来
答案 6 :(得分:1)
我们的源代码树中有一个“过时”区域,我们移动不再使用的东西。它在通常没有检查的区域远离行李箱,因此没有人必须看它。
答案 7 :(得分:1)
我打算建议用一条注释来替换已删除的代码,该注释指定了删除代码的工作项。我的理由是这提供了一个“钩子”,可以附加任何代码审查注释。我们正在使用TFS更改集来进行代码评审VS Professional。如果代码被100%删除,则没有钩子。