我在一个应用程序中使用了大约100000个LOCs,基本上我们已经重新设计了一些特性,以遵循基于新技术栈的新体系结构。这项工作几乎已经完成,但我们必须保留旧代码,因为我们必须保证在新的程序中出现严重错误时,环境是稳定的。
这导致了一种情况,即我们有大量的死代码与大量的工作代码混在一起,因此很难估计删除这些死代码所需的时间。
这个代码库特别麻烦,因为它没有单元/集成测试,除了在重新处理我们迁移到新体系结构的特性过程中生成的测试之外,而且我还认为许多新代码与死代码交织在一起(通过静态调用,使用以前抛出的异常)。
什么是一个很好的起点来估计安全删除代码需要多长时间?
发布于 2013-12-23 17:52:41
每个项目都是不同的,因此没有一种有效的方法来估计删除死代码的时间。需要保留旧代码听起来像是缺少一个允许您分支的高质量源代码控制系统。
无论如何:像SonarQube这样的工具可以帮助识别一些死气沉沉的代码,但却找不到从未使用过的类。我建议在SonarQube的帮助下手工处理部分代码,并在您进行评估时进行开发。如果你完成了20%的课程,并且需要2周的时间,那么你还可以估计还有8周才能完成剩下的课程。
此外,进行某种类型的自动化测试将有助于防止您发现错误地更快地删除代码。
发布于 2013-12-23 17:56:05
你的公司值多少钱?
不,说真的。多少钱?
因为骑士之都未能使用他们的系统进行做好家务。这导致了一个小故障,最终以火价收购了他们。
要么是死的,要么不是。如果它死了,那就把它处理掉。如果不是,您需要知道调用代码的是什么,并进行必要的更改,这样就可以删除旧代码。
如果您不确定它是否已经死了,那么要么分析您的代码,要么让它在那些可能死掉的代码路径被击中时抛出令人讨厌的、不可能错过的错误。
估计删除的时间/成本取决于代码的结构是否良好。如果新代码与旧代码隔离得很好,那么更改代码的成本应该是最低的。如果您没有隔离代码,那么很难预测事情会有多复杂。越纠结,你的成本和时间就越高。
发布于 2014-01-24 18:28:00
如果使用全局查找和替换,将其输入到每个类的构造函数中会怎样:
PrintToMyLogFile(this.className);运行更高级别的测试,包括手动测试。然后删除日志文件中arn没有的所有文件。
这显然会破坏一些东西,但你可以在你进行的过程中修复它们。这将确保您能够删除所有未使用的类。
实际上,这可能不是一个很好的解决方法,而且可能有许多我还没有考虑过的问题。
https://softwareengineering.stackexchange.com/questions/222215
复制相似问题