2

您如何定义“不需要的代码”?


编辑:

恕我直言,任何具有 0 个活动调用成员(递归检查)的代码成员都是不需要的代码。(函数、方法、属性、变量都是成员)

4

8 回答 8

2

这是我对不需要的代码的定义:

  • 不执行的代码是自重。(除非它是您实际代码的 [恶意] 有效负载,但那是另一回事 :-))
  • 重复多次的代码会增加产品的成本。
  • 无法进行回归测试的代码也会增加产品的成本。

您可以删除此类代码或重构它,但您不想保留它。

于 2009-03-05T10:00:54.840 回答
1

就像您在另一个线程中所说的那样,根本不需要在任何地方使用的代码。至于如何找到它,例如,如果您使用的是 Java,我建议使用 FindBugs 或 CheckStyle,因为这些工具会检查函数是否在任何地方使用,如果没有,则将其标记为未使用。非常适合摆脱不必要的重量。

于 2009-03-05T09:53:02.193 回答
1

好吧,经过短暂的思考,我想出了这三点:

  • 它可以是应该重构的代码
  • 它可以是不再调用的代码(早期版本的剩余部分)
  • 它可能是不适用于您的样式指南和编码方式的代码

我敢打赌还有很多,但这就是我定义不需要的代码的方式。

于 2009-03-05T09:54:02.033 回答
1

在java中,我会用@Deprecated标记方法或类。

于 2009-03-05T09:54:16.447 回答
1

任何没有活动调用成员的PRIVATE代码成员(递归检查)。否则你不知道你的代码是否没有在你的范围分析之外使用。

于 2009-03-05T09:59:01.773 回答
1

0 次通话,在不久的将来不可能使用。由于我使用 SVN(源代码控制),因此我更喜欢从不注释任何内容,以防以后需要。

于 2009-03-05T10:49:50.213 回答
0

通常我会告诉我的编译器尽可能地嘈杂,这会挑选出我需要检查的 60% 的东西。几个月前未使用的函数(在与 VCS 核对后)通常会被淘汰,除非它们的作者告诉我它们何时会真正被使用。缺少原型的东西也立即被怀疑。

我认为尝试实施自动房屋清洁就像尝试制作一个 USB 设备,以保证您“安全”玩俄罗斯轮盘赌

最难检查的部分是添加到构建系统中的组件,很少有人注意到这些组件和未使用的组件会留下来收集苔藓。

除此之外,我通常想要代码,我只是希望它的作者对其进行一些重构并使其风格与项目的其余部分相同。

另一个有用的工具是doxygen,它确实可以帮助您(直观地)查看源代码树中的关系。但是,如果它设置为不提取静态符号/对象,则它不会非常彻底。

于 2009-03-05T09:59:57.557 回答
0

有些东西已经发布了,但这里有另一个:几乎做同样事情的函数。(只有很小的变量更改,因此整个函数被复制粘贴并且该变量被更改)

于 2009-03-05T10:58:33.690 回答