在巨大的遗留应用程序中,通常会看到业务规则的变化导致未使用的代码。删除是最好的方法吗?或者是否有标记未使用代码的标准?如果需要,SCM确实有助于恢复旧代码。这也是特定于.NET代码库的。
答案 0 :(得分:55)
答案 1 :(得分:36)
这样,如果您需要弃用某些已分配给他们但需要拨打电话的代码,那么您的团队成员就不会太惊讶。但是允许你做出那些必要的改变!
答案 2 :(得分:15)
我总是删除未使用的代码。这是源代码控制的好处之一。
答案 3 :(得分:11)
从迈克尔·杰克逊那里得到一些建议:
删除它...删除它...删除它...删除它...
没有人想被击败
Showin'你的斗争是多么的时髦和强大
谁错或正确无关紧要
只需删除它...删除它......只需删除它...删除它......
答案 4 :(得分:5)
我认为删除是保持代码清洁的好方法。
如果你不删除,例如:注释掉,或创建obselete实体来存储它们,我已经看到了这样的混乱。
这就是你拥有存储库,分支,标签等的原因。
我发现删除它会更好。如果代码已存在于存储库中。
答案 5 :(得分:5)
我通常将其标记为过时:
/// <summary>
/// Purpose of this method
/// </summary>
/// <param name="args">Argument 1</param>
[Obsolete("This method is obsolete, use NewMethod instead")]
public void SampleMethod(string args)
{
//code
}
/// <summary>
/// Purpose of this method
/// </summary>
/// <param name="args">Argument 1</param>
public void NewMethod(string args)
{
//code
}
现在,只要使用标记为Obsolete的方法,编译器就会发出警告。
答案 6 :(得分:4)
标记未使用的遗留代码的最佳方法是删除它。除了将新开发人员与团队混淆之外,它没有任何意义。
在我的老队伍中,我们实际上把它变成了一场名为Grim Repear比赛的比赛。谁能找到并删除代码库中最大量的未使用/死代码。删除死代码和添加死代码的积极点被授予负分。得分最低。
答案 7 :(得分:3)
如果我有不再使用的代码,我会在Craigslist上出售。
答案 8 :(得分:2)
从Pragmatic Programmer一书中应用lesson的好地方。
备份然后删除所有未使用的代码。相信我,它将使开发人员免于未来的头痛。如果您犹豫不决,可能需要基于注释掉的代码的未来功能,那么尝试理解未使用的代码或逻辑甚至不值得。最好从干净的心态开始,而无需破译明显半生不熟的未经测试的代码。
答案 9 :(得分:2)
我更喜欢删除它。源代码控制将保留那些(以及删除它)的历史记录。我讨厌搜索代码并在注释掉的代码中查看结果 - 尤其是当使用/*...*/
评论代码时,您无法在查找文件结果中看到代码而不是\\
,这至少让我有机会看到结果被注释掉了。
答案 10 :(得分:2)
绝对删除未使用的代码。根据我的经验,遗留代码库的最大问题是了解代码是什么 - 更少的代码意味着更少的理解,使您的工作更轻松。
就像你说的那样,如果你使用源代码控制(你正在使用源代码控制,对吧?)你可以随时取回它,除非你做了一些奇怪的事情(比如动态编译代码或通过反射加载代码),你如果您删除了错误的代码,可能会很快发现,因为您的构建将失败。
答案 11 :(得分:1)
如果某些功能的代码分散在整个程序中,那么不需要但以后可能需要的某些功能的代码会怎样?使用#ifdef控制此类代码(在一个文件中保留用于此目的的所有#define标签的主列表)可以允许随意启用或禁用该功能;试图从版本控制系统重新整合所有一小部分代码似乎更难。
答案 12 :(得分:1)
就个人而言,我删除了我不使用的代码,并依赖源代码控制来跟踪它。我不使用VSS,但不会。
这个规则有一个例外但是......有时候,如果我在某个地方删除代码,而其他人认为它需要在那里太诱人,我会留下评论,快速注释所以他们不要重做我的工作。
答案 13 :(得分:1)
我认为最好的方法是对项目进行版本控制,例如SVN,CVS。然后删除未使用的代码。减少编译的源文件大小,避免使用未使用的代码。
答案 14 :(得分:1)
删除旧版应用程序中未使用的代码。
如果您有源控件删除未使用的代码将不会伤害任何东西,因为它的历史记录保存在您正在使用的任何版本控制软件中。 清洁代码可帮助下一位开发人员进入并进行更改。旧代码仅在必须进行更改时才会混淆问题。
答案 15 :(得分:1)
我删除了代码,但首先我确保它不会在以后造成任何麻烦。如果我以后需要它,我从源代码控制中得到它,我使用一个很好的功能 - 代码比较,我可以看到改变了什么。我没有对未使用的代码进行评论,因为如果其他开发人员正在查看代码,则很难理解为什么不使用它(特别是如果开发人员没有对其进行评论)。因此,删除代码将使其简单明了。
答案 16 :(得分:1)
我相信这是在Refuctoring会议上回答的问题 - http://www.waterfall2006.com在讨论“雨天模块”时 - 你应该编写备用代码以防以后有人需要它......
class SpareCode {
private int spareInteger;
private String luckyString;
private bool youNeverKnow ;
public void spareLogic() {
spareInteger = 1;
if ( youNeverKnow ) {
spareInteger++;
}
System.out.println( luckyString);
}
答案 17 :(得分:0)
我的评论方式与我在上线前注释我的System.out.println一样。