你如何处理冗余代码?

时间:2009-05-14 08:14:59

标签: refactoring

我有一个类,它是为不再需要的特定目的而编写的代码库项目的一部分。所以问题是你用这样的代码做什么?你是删除它,还是留下它,请记住未来的开发人员可能会遇到它并且没有意识到他们可以忽略它或者你是否有某种存档系统,是否存在一种公认的“模式”使用...

11 个答案:

答案 0 :(得分:35)

删除它。您可以随后从版本控制系统中取回它。你有版本控制,不是吗?

答案 1 :(得分:14)

正如尼尔所说,删除它。如果我在你完成它之后被雇用来维护你的项目多年并且它仍然充满了死代码......我会困扰你。而不是ooooohhhhh不错的有点困扰..但ARRRRWWWGGGGGRRRR !!!!!恼人的困扰。

答案 2 :(得分:5)

这取决于。

  • 如果因为它已经过时而未被使用,我会通过删除它从当前代码库中清除它。如果事实证明它确实需要,你总是可以从源代码控制中检索它。

  • 如果它目前尚未使用,但可能会在不久的将来使用,我会将其保留在当前的代码库中,因为我不希望其他开发人员浏览源代码控制功能以防万一。换句话说:如果你删除了很有可能被使用的东西,很可能有人会重新实现它。

答案 3 :(得分:1)

如果它没有在任何地方使用,并且不再需要,则应将其删除以避免混淆。

你没有说你正在使用什么代码但是在C#/ VisualStudio中你可以使用Obsolete属性告诉其他开发人员不要使用代码,你可以将errors参数设置为true,这将打破任何地方的构建正在使用代码。

答案 4 :(得分:1)

我首先要使用Obsolete属性标记过时的代码元素。这样,您将能够找到引用过时元素的任何代码,从而为您提供更新这些部分的方法。当您不再收到任何使用过时代码的编译器警告时,请继续并删除它。

更新:好的,现在我在想.NET和C#,但我相信很多其他语言都有类似的功能......

答案 5 :(得分:0)

我尝试尽可能少地保留我的应用程序代码。库代码应与多个版本兼容,然后将其删除或仅将其标记为已弃用。

答案 6 :(得分:0)

我完全同意尼尔。使用SVN或任何其他版本控制系统来跟踪您的代码并删除任何冗余的内容。过多的注释代码只会使您的代码难以阅读,在某些情况下无法进行调试。

答案 7 :(得分:0)

最好的选择是删除代码,以便拥有更清晰的存储库。大多数时候,这只是一个短期的过程,会让你删除一些潜在的巨大价值。 如果同事程序员以后需要它,那么指望svn将无法正常工作。因为您必须知道之前存在的代码,然后有些人必须扫描svn。 如果我真的认为我想保留那些代码,而不是通常从文件中创建一个存档,并将它们添加到我们的wiki中,然后删除代码。通过搜索wiki,有人可以找到代码。使用存档进行扫描,并且由于描述中包含存储库和版本号,他们甚至可以轻松地重新确定他们需要的部分。

答案 8 :(得分:0)

如果它很多,可重用和/或代码难以重现,我通常将其放入名为<projectname>_rubbish.<ext>的文件中。不是很优雅,但我可以很容易地忽略它,并在我再次需要时无缝地寻找它。

答案 9 :(得分:0)

然后安装GIT:

cd <code repo>
git init .
git add .
git commit -m 'inital import for my old code'

...重构代码......

git add <path/to/file/with/changes/>
git commit -m 'that feels much better... :)'

...在GitHub上创建一个帐户或设置一个GitServer

git remote add origin <remote git repo>
git push origin master

你已经完成了......:)

答案 10 :(得分:0)

只需将其删除即可。如果不再需要,就没有必要保留它。