8

当您花一整天的时间让某个功能正常工作,但架构更改导致该功能不再被使用时,您会怎么做?但是您知道代码足够有用,以至于如果体系结构发生变化,该功能将再次有用吗?

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

4

18 回答 18

11

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

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

死代码的人:这是一个。

死密码收集器:那将是九便士。

死代码:我不是死代码。

死码收集者:什么?

死代码的人:什么都没有。有你的九便士。

死代码:我不是死代码。

死代码收集者:'呃,他说他不是死代码。

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

死代码:我不是。

死密码收集器:他不是。

死代码的人:嗯,他很快就会了,他病得很重。

死代码:我正在变得更好。

死代码的人:不,你不是,你马上就会变成死代码。

死密码收集者:嗯,我不能这样对待他。这是违反规定的。

死代码:我不想上车。

死代码的人:哦,别这么小。

死密码收集者:我不能带走他。

死代码:我感觉很好。

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

死代码收集器:我不能。

有死代码的人:嗯,你能多呆几分钟吗?他不会长。

死密码收集器:我答应过我会在罗宾逊家。他们今天已经输了九个。

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

死代码收集器:星期四。

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

死代码的人:你不是在愚弄任何人,你知道的。你没有什么可以做的吗?

死代码:我感到很高兴。我感到开心。

[死代码收集器偷偷地上下扫视街道,然后用他的 Ctrl-X 敲击使死代码静音]

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

于 2008-12-09T09:53:34.453 回答
10

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

不要签入 -集中存储库仅用于存放应用程序中使用的工作代码

于 2008-12-09T09:47:41.063 回答
6

根据定义,未使用的代码没有用处。永远记住YAGNI。在 99% 的情况下,您应该删除它,因为下次它可能有用时,再次执行它可能会更快(您只花了一天时间)。

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

于 2008-12-09T09:50:24.707 回答
4

我肯定会删除它。您可以将它放在项目成员可以看到但从项目中取出的特殊位置。当开发人员无法弄清楚为什么不调用特定函数时,它会使维护变得困难。

于 2008-12-09T09:48:20.470 回答
4

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

在我看来,重用整个函数并不总是有用的,而是查看曾经有意义的漂亮、可运行的代码。

于 2008-12-09T10:02:48.287 回答
3

删除代码。写一个好的签入评论,解释你删除的内容和原因。这应该足够清楚,以便以后在该文件上运行历史命令的人会理解它,并且可以从版本控制存储库中检索您的函数。

于 2008-12-09T09:57:22.680 回答
3

签入,并带有注释(在代码中并签入)说您将要删除它。

然后删除它并立即签入更改,并附上签入注释来解释原因。

这样你的代码库中就没有杂乱无章的东西,但你有一个永久的代码记录。

于 2008-12-09T10:41:07.133 回答
2

签入并注释掉。恕我直言,太空成本非常值得您花时间在做正确的事情上(如果风变,可能需要再次花费)。也许您可以将其作为“零碎”文件的一部分签入,这样它就不会弄乱您的活动代码。

于 2008-12-09T09:48:14.383 回答
2

高兴地删除它。

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

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

—<a href="http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF" rel="nofollow noreferrer">Dijkstra 1036-11

于 2008-12-09T10:28:58.030 回答
1

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

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

于 2008-12-09T10:11:32.497 回答
1

不再维护死代码。当您再次需要它时,您将需要花时间让它再次工作。如果它真的很有用并且你仍然记得它,你总是可以通过你的版本控制来获得它。

在工作中,有些人的代码在 4 年前已被注释掉,占源文件的 70%。 放手吧

于 2008-12-09T10:23:58.277 回答
1

只需将其保存在您为自己设计或系统中可用的任何片段收集器中。问题不在于把它放在哪里(大多数情况下我们只是在谈论文本,不是吗?),而是如何再次找到它。问题是如何再次找到它,因此需要使用某种标记/搜索方法。

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

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

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

于 2008-12-09T11:11:44.433 回答
1

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

于 2009-01-07T14:13:05.490 回答
0

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

于 2008-12-09T10:01:23.640 回答
0

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

反对这一点的通常论点是,公司没有付钱给你写免费代码,但是,他们让你在一个不稳定的架构上工作,所以他们无论如何都没有从你的代码中受益。

于 2008-12-09T10:13:46.597 回答
0

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

另一种方式:因为我们将项目保存在 SVN 存储库中,所以当我替换我的有用函数时,我的日志文件中总是有 dat 函数,因此我可以在将来随时访问它。

于 2008-12-09T10:31:48.370 回答
0

代码较少的系统更好,当您稍后取消注释时,您的注释代码将毫无用处。以前可以正常运行的代码的所有环境都可以更改或更危险 - 可能会更改新业务逻辑附带的一些不可见的小部分。

旧代码是引入新错误的绝佳机会。取消注释旧代码与通过猜测进行编程(看,它有效!)从定义上讲是邪恶的。

于 2008-12-09T11:49:57.807 回答
0

How to Delete Code中有很多建议,但我保留了一个纯文本文件,我将其转储偶尔经过测试但未使用的函数,这些函数有一天可能会派上用场。我不忍心将它们完全扔掉,但话又说回来,我也从来不需要回到它们中的任何一个。

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

于 2009-09-02T11:27:49.010 回答