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


编辑:

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

有帮助吗?

解决方案

0个有效通话,不可能在不久的将来使用。因为我使用SVN(源代码控制),所以我希望以后永远不会注释掉任何内容,因为我需要它。

其他提示

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

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

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

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

经过短暂的思考,我得出了以下三点:

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

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

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

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

有些东西已经贴出来,但这是另一件事: 几乎做同样事情的功能。 (只有一个小的变量,因此整个函数被复制粘贴并且变量被更改)

通常我告诉我的编译器尽可能烦恼,选择我需要检查的60%的东西。几个月未使用的功能(在使用VCS检查后)通常会被取消,除非他们的作者告诉我他们何时会被使用。缺少原型的东西也很快被怀疑。

我认为尝试实施自动化房屋清洁就像试图制作一个可以“安全”播放的USB设备俄罗斯轮盘

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top