拥有无用的代码是否可以接受?

时间:2009-12-02 14:38:30

标签: coding-style

我看到一些程序员添加了代码,毕竟这些代码没有做任何有用的事情。例如(C#):

[Serializable]
class Foo {
    // ...
    string SerializeMe() {
        return new XmlSerializer(typeof(this)).Serialize(this).ToString(); // serialize to xml (syntax wrong, not important here)
    }
}

该类被标记为Serializable,但它被序列化的唯一方法是通过XmlSerialization,它根本不需要class属性。

我个人讨厌这种无用的代码,但我经常看到它,我很好奇别人怎么想。毕竟这不是一个严重的缺陷吗?这是行业中的常见做法吗?或者这只是简单的坏事,无论如何都应该删除?

12 个答案:

答案 0 :(得分:18)

良好的源代码控制意味着应删除不再需要的无用代码或代码。它总是可以在以后从源代码管理中检索。

答案 1 :(得分:10)

我的经验法则

如果不使用它就会摆脱它。

所有剩余的评论,属性只是噪音,并帮助您的代码变得不可读。如果离开那里,他们会鼓励您的代码库中有更多剩余代码。所以删除它。

答案 2 :(得分:5)

我尝试遵循YAGNI原则,所以这也困扰我。

答案 3 :(得分:4)

  

读取额外的(无用的,如您添加的)代码是否需要花费很少的精力?

如果是(我认为是这样)那么它不应该在代码中。像这样的代码被额外的片段污染了,这些片段没用,它们就是“以防万一” 这些事情的“后期重构”可能是痛苦的,经过6个月的12个月后,谁会记得是否真的使用过它?

答案 4 :(得分:4)

真的 不喜欢它。

因为我花了宝贵的时间试图找出它为什么存在。假设它存在,那是有原因的,如果我没有看到原因,那么在我开始搞乱代码之前,我有可能错过了一些我应该理解的重要内容。当我意识到我只是浪费了一个小时试图理解为什么,或者什么,一些代码片段正在做什么时,这让我感到恼火,这只是一些开发人员懒得回去删除它。

答案 5 :(得分:2)

可以而且应该删除无用的单行代码。

花费时间编写的无用代码可以并且应该被删除......但负责人往往会对此感到不安。也许最好的解决方案是建立一个ProbablyUselessButWhoKnows项目,每个人都可以检查可能在两三年内再次使用的无意义代码。如果不出意外,人们不必为删除它而感到紧张。

(是的,从理论上讲,你可以从源代码控制中获取它,但源代码管理中旧的已删除代码并不是很容易被发现。)

答案 6 :(得分:1)

在一个商业项目中 - 我会说不,特别是如果有人可以将它拆开来阅读,然后有一个WTF时刻。

在家庭项目中 - 确定为什么不这样做,我经常保留一些片段供以后使用。

答案 7 :(得分:1)

嗯,我不能在不了解你的背景的情况下评论这段特殊的代码,但我个人严格遵守规则,除非我真的需要,否则不要在代码中包含任何内容。或者至少知道它有一天可能对我已经想到的东西有用了。

答案 8 :(得分:1)

这是错误的代码。

错误的代码是常见的做法。

有人说,有时候改变那些没有“破碎”的东西是不值得的。

答案 9 :(得分:1)

  

似乎无法在不再添加的情况下获得完美,但是不能再删除。 - Antoine de Saint-Exupéry

答案 10 :(得分:0)

认为无用的含义是它不能也不会被使用。我也认为敞开的门非常开放。

答案 11 :(得分:0)

如果有使用此附加功能的有效计划,请将其保留。

如果您知道它将永远不会被使用,或者该计划在6个月前停止相关,那么请将其拉出来。我先把它评论出去,然后再将其彻底删除。

我正在重新调整许多公开的变量,但实际上只需要保护或私有,只是因为它们从API的角度来看是没有意义的 - 这并没有使用它们