【问题标题】:How do you define 'unwanted code'?您如何定义“不需要的代码”?
【发布时间】:2009-03-05 09:48:44
【问题描述】:

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


编辑:

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

【问题讨论】:

    标签: code-metrics dead-code


    【解决方案1】:

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

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

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

    【讨论】:

    • 人们是否曾经在代码中放置过大量有效负载,或者只是在房子里最小的房间里?
    • @Random Echo - 到目前为止,我只在一个项目中看到过大量的代码负载。所以我同意这是极其罕见的情况。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        想了一会儿,我想出了这三点:

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

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

            【讨论】:

              【解决方案7】:

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

              【讨论】:

                【解决方案8】:

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

                我认为尝试实施自动房屋清洁就像尝试制作一个确保您“安全”玩的 USB 设备Russian Roulette

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

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

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2019-06-26
                  • 1970-01-01
                  • 1970-01-01
                  • 2021-07-24
                  • 1970-01-01
                  • 2017-12-19
                  • 2015-10-21
                  • 1970-01-01
                  相关资源
                  最近更新 更多