fxcop 是提高代码质量的有价值/有效工具吗? [关闭]

Posted

技术标签:

【中文标题】fxcop 是提高代码质量的有价值/有效工具吗? [关闭]【英文标题】:Is fxcop a valuable/effective tool for improving code quality? [closed] 【发布时间】:2009-12-08 15:54:19 【问题描述】:

我有一个大型的高质量 c# 框架代码库,但我仍想尝试改进。

    fxcop 是改进 .NET 框架的有效工具吗?我知道 Microsoft 在内部使用该工具,但外部用户如何找到它?值得吗?

    我已经拥有数以万计的代码行和成熟的风格,它能否适应我们的风格并仍然提供良好的指导?

    大概需要多长时间才能完成设置?几小时、几天、几周?我会早点学到有用的东西吗?

【问题讨论】:

【参考方案1】:
    是的,FxCop 是改进 .Net 代码库的非常有效的工具。除了发现许多不同类型的错误(全球化、pinvoke、安全、性能)之外,它还会警告您各种违反约定的样式问题。并指出偶尔出现的拼写错误。 FxCop 是高度可定制的。例如,您可以关闭所有样式推荐并仅启用错误检查。这将为您带来立竿见影的好处,而无需改变您的风格。 实际上取决于您启用了多少 FxCop 以及您的代码库有多大。我发现在我的个人项目中,设置时间很少超过一个小时。但对于大型项目,我会安排一两天

【讨论】:

关于第 3 点,在努力方面留出一两天可能会有所帮助,但是要在一周左右的时间内实时完成,很难坐下来得到它第一次适合团队。 感谢 JaredPar 和其他所有人。看起来我们会试试这个工具。我们只是发布后,所以我有一些时间来做这样的事情。 顺便说一句,代码库有数百个类,所以它相当大。【参考方案2】:

绝对是的。我用了一年半。它发现了各种问题和陷阱,它教会了我一两件事。在许多情况下,Microsoft 最了解。

设置只是勾选几个框并修改一些构建脚本的问题,非常值得付出努力。如果您研究它做出的您不理解的决策并保持开放的态度,您将从中学到很多东西。

【讨论】:

【参考方案3】:

    它在大多数时候都很有用,但并非总是如此! (您只需要认真对待一些核心问题,而忽略以微软风格开发代码的非常特殊的问题)。

    它给出的一些指导与风格无关,取决于你是否遵循良好的编程实践,所以是的,你可以从中获得一些指导。

    我认为设置不会花费您太多时间,最多应该是几个小时。

谢谢

【讨论】:

【参考方案4】:

我发现 fxCop 是执行编码标准的好工具。如果您已经有了自己的标准并且始终遵循它,那么我认为没有太多改变的理由,对于这么多代码行更是如此。设置非常简单,运行和修复一切都是另一回事。

【讨论】:

【参考方案5】:

FxCop 规则的替代方法是使用工具 NDepend。这个工具允许编写 C# LINQ 查询上的代码规则 what we call CQLinq。 免责声明:我是该工具的开发人员之一

1) 默认建议超过200 code rules。它们使工具有效,因为它们涵盖了广泛的检查(代码质量、.NET Fx 使用、结构、设计、演变、重大更改、死代码、命名约定......)

2) 借助众所周知的 C# LINQ 语法,自定义现有规则或创建自己的规则非常简单。

3) 可以在 live in Visual Studio 和构建过程时验证规则,在 generated html+javascript report 中。这很容易设置,最多几个小时。

3) bis 我会早晚学到有用的东西吗?

让我们引用 Hakan Tuncer 的这条推文:It's amazing to see how much you can learn just by reading the ‪#NDepend‬ rules.Rule descriptions even contain references to blog links.

【讨论】:

以上是关于fxcop 是提高代码质量的有价值/有效工具吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

fxcop 会检查所有规则吗?

我应该使用 FxCop,为啥?

有效提高代码质量:Code Review 最佳实践

除了 FxCop 之外,.net 中的代码分析还有其他选择吗?

修改变量名,简单有效地提高代码质量!

学习 Introspection API(由 FxCop 使用)