静态代码分析 - 首先打开哪些?

时间:2009-10-26 16:51:15

标签: c# visual-studio-2008 code-analysis static-analysis

我们正在使用带有内置静态代码分析规则集的VS2008 我们有一个相对较大的C#解决方案(150多个项目),而一些项目(< 20)正在虔诚地使用静态代码分析,大多数不是。我们希望开始对所有项目实施静态代码分析,但启用所有规则会对我们当前的项目造成巨大的干扰。我们应该首先启用哪些静态代码分析规则?降压哪个规则最大?如果你能给我优先排名前20位,我会非常感激 提前谢谢,
--Ed.S。

5 个答案:

答案 0 :(得分:2)

鉴于Studio的规则类似于FxCop的规则,我可以告诉你哪些我打开最后

如果国际化尚未出现,请关闭全球化规则。

最初关闭“效果规则”。在需要时进行优化。

让其他人适合您的团队和项目。关闭不适用的个别规则。特别是,可能需要调整命名规则。

编辑:最重要的是减少噪音。如果每个项目都有200个警告并且持续数月,那么每个人都会忽略它们。打开对您的团队至关重要的规则,清理代码以获得100%的传递(或抑制异常 - 并且会有例外;这些是指导原则),然后强制保持代码清洁。

答案 1 :(得分:2)

您应该为项目激活的第一个规则是您在该项目中尚未违反的规则。这样您就可以避免引入新问题,而无需花费任何额外的清理工作。

至于其他项目,鉴于您已经在其他项目中使用代码分析,那么最有可能打破规则并且产生严重后果的最佳输入可能是开发这些项目的开发人员。如果项目之间没有足够的重叠以从开发人员那里获得有意义的反馈,您可能需要考虑从Visual Studio 2010中Microsoft Minimum Recommended Rules规则集中包含的规则开始。

如果您计划实际清理任何给定项目中的现有违规,您可能需要consider using FxCop instead of VS Code Analysis,直到清理完成。这样您就可以立即激活规则,同时保持“清理”排除源代码之外的现有违规行为。

答案 2 :(得分:0)

如果您要本地化您的项目/它将在不同的国家/地区使用,那么肯定会启用本地化规则。它会发现所有调用所有未指定CultureInfo的Format / Parse函数。涉及未指定CultureInfo的错误在测试中很难找到,但是当你的法语客户端会问:为什么你的程序不能正常工作/因为“,”作为小数分隔符而崩溃的数字时,它们会真的咬你。

答案 3 :(得分:0)

根据我的经验,代码分析所有类型的警告都会在代码中显示“隐藏”的错误或缺陷。修复这些可以解决一些实际问题。我还没有找到我想要禁用的警告列表。

相反,我会一次打开一个项目,并在移动到下一个项目之前修复该项目中的所有警告。

如果您想要关闭,我会考虑不检查命名规则(除非您要提供库,API或其他外部公开的方法)和全球化规则。 (除非您的应用程序积极使用全球化)。这有点取决于您的具体情况。

答案 4 :(得分:0)

我有点同意Jeroen Huinink's answer

我会启用您认为项目应遵循的所有规则并尽快修复它们。您现在不必全部修复它们,但是当您通过修复缺陷或重构模块中的方法时,您始终可以清除该方法或模块中静态分析所发现的问题。新代码应遵循您的规则,现有代码应尽快转换为遵守,但您不需要放弃所有代码来实现这一目标。

您的开发团队还可以查看项目的问题并确定其优先级,可能会在问题跟踪系统中为最关键的问题提交缺陷,以便他们能够快速解决并由相应的开发人员解决。

相关问题