当你花费一整天时间让功能正常工作时,你会发现架构更改导致该功能不再被使用?但是你知道代码是有用的,如果架构再次回归,那么这个函数将再次有用吗?
在您签入之前删除该功能似乎是错误的,但如果您将其签入,则会将空间占用为未使用的功能。
答案 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)
高兴地删除它。
代码是针对动态世界中不断变化的需求而做出的静态承诺。
我今天的观点是,如果我们希望计算代码行数,我们不应该将它们视为“产生的线条”,而应视为“花费的线条”:当前的传统智慧是如此愚蠢以至于指出错误分类帐的一面。
答案 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)
自从我两年前开始在我现在的雇主工作以来,我创建了一个很大的实用程序代码库。它分为几个类别,用于多个项目。我创建的代码,我不需要立即进入并休眠直到它被使用(或永远,以较早者为准)。