如何处理未使用的,有用的代码?

时间:2008-12-09 09:43:34

标签: maintenance

当你花费一整天时间让功能正常工作时,你会发现架构更改导致该功能不再被使用?但是你知道代码是有用的,如果架构再次回归,那么这个函数将再次有用吗?

在您签入之前删除该功能似乎是错误的,但如果您将其签入,则会将空间占用为未使用的功能。

18 个答案:

答案 0 :(得分:11)

作为答案,请考虑这个简短的故事:

死代码收集器:带出死代码。

有死码的人:这是一个。

死码收藏家:那将是九便士。

死代码:我不是死代码。

死码收藏家:什么?

有死码的人:没什么。这是你的九便士。

死代码:我不是死代码。

死码收藏家:'Ere,他说他不是死代码。

有死码的人:是的,他是。

死密码:我不是。

死码收藏家:他不是。

有死码的人:嗯,他很快就会病,他很病了。

死密码:我越来越好了。

有死代码的人:不,你不是,你马上就会死了。

死码收藏家:好吧,我不能那样接受他。这是违反规定的。

死密码:我不想上车。

有死码的男人:哦,不要这样的孩子。

死码收藏家:我不能带他。

死密码:我感觉很好。

有死代码的人:哦,帮我一个忙。

死码收藏家:我不能。

有死码的男人:好吧,你可以闲逛几分钟吗?他不会很久。

死码收藏家:我答应过我会在罗宾逊家。他们今天失去了九个。

有死码的人:嗯,你的下一轮是什么时候?

死码收藏家:星期四。

死密码:我想我会去散步。

有死代码的人:你知道,你不是在愚弄任何人。你有什么办法吗?

死密码:我感到高兴。我感到高兴。

[死Colle收藏家偷偷地瞥了一眼街道,然后用他的Ctrl-X敲打着沉默的代码]

有死码的人:啊,非常感谢你。

答案 1 :(得分:10)

我在离线代码段数据库中记录了所有有用的代码。

请勿将其签入 - 集中式存储库仅适用于应用程序中使用的工作代码

答案 2 :(得分:6)

根据定义,未使用的代码无用。永远记得YAGNI。在99%的情况下你应该删除它,因为下次可能有用时,它可能会更快再做(你只花了一天时间)。
< / p>

在极少数情况下,它可以“酷”,您可以将其存储在代码段数据库中。

答案 3 :(得分:4)

我肯定会删除它。您可以将它放在项目成员可以看到的特殊位置,但将其从项目中取出。当开发人员无法在没有被调用时找出特定函数的原因时,它会使维护变得困难。

答案 4 :(得分:4)

在这种情况下,我总是使用 WIKI 来描述该软件。 然后,该功能的标记良好的子项良好描述就可以了。

在我看来,重用整个函数并不总是有用,而是要看一下曾经有意义的漂亮,可操作的代码。

答案 5 :(得分:3)

删除代码。写一个好的签到评论,解释你删除了什么以及为什么。 这应该足够清楚,以便有人在该文件上运行历史命令将理解它,并且可以从版本控制库中检索您的函数。

答案 6 :(得分:3)

将其签入,并附上评论(代码和签到),表示您即将删除它。

然后将其删除并立即签入更改,并附上检查说明,解释原因。

这样你的代码库就没有了,但是你已经获得了代码的永久记录。

答案 7 :(得分:2)

检查并评论出来。恕我直言,太空中的成本非常值得你花时间去做正确的时间(并且如果风改变可能需要再次花费)。也许你可以将它作为“零碎”文件的一部分进行检查,这样它就不会使你的活动代码变得混乱。

答案 8 :(得分:2)

高兴地删除它。

代码是针对动态世界中不断变化的需求而做出的静态承诺。

  

我今天的观点是,如果我们希望计算代码行数,我们不应该将它们视为“产生的线条”,而应视为“花费的线条”:当前的传统智慧是如此愚蠢以至于指出错误分类帐的一面。

     

- Dijkstra 1036-11

答案 9 :(得分:1)

将您的代码发布到: http://snipplr.com/ http://refactormycode.com/

让其他人评价,也许也可以使用它:)

答案 10 :(得分:1)

如果它的数量很大(而且一般都是有用的),为什么不考虑开源呢?我喜欢回收的想法。

答案 11 :(得分:1)

不再维护死代码。当你再次需要时,你需要花时间让它再次运作。如果它真的很有用,你仍然记得它,你可以随时通过你的版本控制。

在工作中,有些人的代码已经被注释掉了4年前,包含70%的源文件。 让它去吧

答案 12 :(得分:1)

只需将其保存在您为自己设计的任何代码段收集器中,或者在系统中可用。这个问题不是“放在哪里(主要是我们只谈论文本,不是我们吗?),而是如何再次找到它。”问题是如何再次找到它,因此需要使用某种标记/搜索方法。

我将代码段保存在Code Collector Pro(适用于Mac)。

这种方式不在任何项目中,但我可以在需要时重复使用它。

免责声明:我只是一个满意的客户。

答案 13 :(得分:0)

How to Delete Code中的许多建议,但我保留了一个纯文本文件,我转储了偶尔测试但未使用的功能,这些功能可能会在某一天派上用场。我不忍心把它们彻底抛弃,但话又说回来,我也没有必要再回到它们中。

关于此类文件/代码片段集合的另一条规则:在一个地方只有一个。

答案 14 :(得分:0)

系统代码更少一个您的注释代码无论如何都会毫无用处(如果)您稍后取消注释。代码曾经可以使用的所有环境都可以更改或更危险 - 可能会更改一些带有新业务逻辑的小型不可见部分。

旧代码是引入新bug的绝佳机会。取消注释旧代码与通过猜测进行编程相同(看起来马,它有效!)根据定义这是邪恶的。

答案 15 :(得分:0)

我的项目副本中有一个类文件,其中我一直存储有用的未使用函数。

另一种方式:因为我们将项目保存在SVN存储库中所以当我替换我的有用功能时,我的日志文件中总是有dat功能,所以我可以在以后的任何时候访问它。

答案 16 :(得分:0)

开源吧!如果它对你没用,也许它对其他人有用。

反对这种情况的通常论点是公司不会支付你编写免费代码的费用,但是,他们让你在不稳定的架构上工作,所以他们无论如何都没有从你的代码中获益。

答案 17 :(得分:0)

自从我两年前开始在我现在的雇主工作以来,我创建了一个很大的实用程序代码库。它分为几个类别,用于多个项目。我创建的代码,我不需要立即进入并休眠直到它被使用(或永远,以较早者为准)。