【问题标题】:Way to check redundant code in C# [duplicate]在 C# 中检查冗余代码的方法 [重复]
【发布时间】:2011-02-18 13:05:14
【问题描述】:

是否有任何工具或方法可以检查如何优化我的代码?消除冗余?我正在使用 VS 2010

谢谢

【问题讨论】:

标签: c#


【解决方案1】:

我不知道删除冗余,但ReSharper 有一些很好的代码分析功能,可以帮助识别未使用的代码块。它还可以就更简洁的代码提出建议,但并不总是 100% 准确。

【讨论】:

    【解决方案2】:

    这样的工具,即使它们存在,也不可靠。最好由优秀的开发人员或架构师进行代码审查。

    【讨论】:

      【解决方案3】:

      没有任何工具可以取代经验和专业知识。有许多生产力工具可以提供帮助,例如一个流行的工具是 ReSharper,但它并不能为您解决所有问题。在某些时候,您只需要依靠您的能力和团队成员的能力。学习如何编写好代码需要时间。

      退后一步,以某些设计原则的思维方式查看您的代码通常会有所帮助。 S.O.L.I.D. 是一个很好的起点。您可以问自己的其他一些问题是:

      • 您的类和类型是否正确封装?
      • 您的代码是测试驱动的还是行为驱动的?
      • 您的测试是否定义了离散的行为单元,或者它们只是针对正在测试的实现进行了定制?
      • 为了专门解决冗余问题,很简单,您是否在两个地方复制/粘贴了执行相同操作的代码?

      【讨论】:

        【解决方案4】:

        分析器可以让您很好地了解您的应用程序将大部分时间花在哪里。但是,从了解什么如何进行优化,需要经验以及对一般代码库和问题领域的了解。

        【讨论】:

          【解决方案5】:

          您需要的是代码覆盖率工具。这些记录了正在执行的代码行。为了使其有效,需要完整的测试套件或手动测试运行。这将显示从未使用过的代码行,并帮助您做出决定。

          静态分析还可以帮助您了解代码路径,并为您提供有关代码调用方式和位置的信息。

          关于代码覆盖率的几个好问题:

          What can I use for good quality Code Coverage for C#/.NET?

          C# Code Coverage metrics

          还可以看看微软的 FxCop 进行静态分析:

          http://msdn.microsoft.com/en-us/library/bb429476(VS.80).aspx

          【讨论】:

            【解决方案6】:

            http://clonedetectivevs.codeplex.com/ 是一个 VS 插件。它在引擎盖下使用http://conqat.cs.tum.edu/。我没有真正使用它,但按照你的要求做。将其与代码审查相结合,可能会有所帮助。

            【讨论】:

              【解决方案7】:

              有一个(商业,249 欧元)解决方案检查重复代码,即使在大型项目中也是如此。

              http://www.solidsourceit.com/products/SolidSDD-code-duplication-cloning-analysis.html

              【讨论】:

                【解决方案8】:

                为此,我们在TeamCity 构建服务器中使用内置Duplicated Finder

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2016-08-02
                  • 1970-01-01
                  • 2023-03-26
                  • 2017-01-13
                  • 1970-01-01
                  • 2021-04-28
                  相关资源
                  最近更新 更多