2008-12-09 44 views
7

当你花一整天的时间获得一个正常工作的功能,但是后来的架构变化导致该功能不再被使用?但是你知道代码是否足够有用,以至于如果架构回荡,那么这个函数将会再次有用?如何处理未使用,有用的代码?

这似乎是错误的,你做检查之前,但随后又占用空间的未使用的功能,如果你选择了它在删除的功能。

回答

10

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

不检查 - 集中式存储库仅适用于在应用程序中使用的工作代码。

2

签入并注释掉。恕我直言,空间成本非常值得你花在正确的时间上(如果风力发生变化,可能需要再次花费)。也许你可以将它作为“零碎”文件的一部分进行检查,以便它不会混淆你的活动代码。

4

我肯定会删除它。你可以把它放在一个特殊的地方,项目的成员可以看到,但把它从项目中解脱出来。当开发人员无法调用某个特定函数时,它会使维护变得困难。

6

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

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

11

作为一个答案,请考虑这个小故事:

的死码采集器:带出揭掉死代码。

死人代码:这是一个。

死代码收集器:这将是ninepence。

死码:我不是死码。

死码收藏家:什么?

死者代码:无。有你的九便士。

死码:我不是死码。

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

死者的男人:是的,他是。

死码:我不是。

死码收藏家:他不是。

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

死代码:我越来越好。

死者的男人:不,你不会,你会在一瞬间石头死的代码。

死码收藏家:呃,我不能把他当作那样。这违反了规定。

死码:我不想上车。

死人的男人:哦,别这么宝贝。

死号收藏家:我不能接他。

死码:我感觉很好。

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

死码收藏家:我不能。

死人代码:嗯,你可以在这里呆几分钟吗?他不会很久。

死码收藏家:我答应我会在罗宾逊的。他们今天输了九场。

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

死码收藏家:星期四。

死号:我想我会去散步。

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

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

[死代码收集几眼上下偷偷在街上,然后沉默死码与他自己按Ctrl-X的失衡]

男子死码:嗯,非常感谢你。

+0

不错:-)这是来自Monty Python的一集,对吧? – Daan 2008-12-09 10:04:24

3

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

0

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

4

在这种情况下,我总是使用描述该软件片段的软件。 A 已标记好的子项目很好的描述然后做那个功能。

在我看来,重用这个整个函数并不总是有用,但是看一下那些曾经有意义的好的,可用的代码。

0

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

反对这个问题的常见理由是,公司不会付钱给您编写免费代码,但是,他们让您在不稳定的架构下工作,因此无论如何他们都无法从您的代码中获益。

1

死代码不再被维护。当你再次需要它时,你需要花时间让它重新工作。如果它确实有用,而且您仍然可以记住它,则可以始终通过您的版本控制获得。

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

2

删除它很高兴。

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

我的观点是,如果我们要计算的代码行,我们不应该把它们当作“线生产”,而是“行花”:目前的传统智慧是愚蠢预订该计数在账本的错误一面。

- Dijkstra 1036-11

0

我已经在我的项目中,我一直保存有用的未使用函数的副本的类文件。

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

3

检查它,并注释(在代码和检查),说你要删除它。

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

通过这种方式,您的代码库中不会存在垃圾,但是您拥有代码的永久记录。

1

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

我把我的代码片段保存在Code Collector Pro(Mac版)中。

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

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

0

使用较少代码的系统更好一个如果以后取消注释,您的注释代码将无用。所有代码以前可以修改的环境都可以更改或更危险 - 可能会更改随新业务逻辑附带的一些小型隐形部分。

旧代码是引入新bug的绝好机会。取消注释旧代码与通过猜测进行编程相同(查看ma,它的工作原理!),这是根据定义而定的。

1

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

0

How to Delete Code中的许多建议,但我保留一个纯文本文件,我转储偶尔测试但未使用的函数,可能有一天会派上用场。我无法忍受把它们完全扔掉,但是再一次,我也没有必要回到任何一个。

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

相关问题