是否有很多 IT 商店使用 FxCop 来编写生产代码?如果是这样,您在文化转变、痛点和有形收益方面实施它的总体经验是什么?
我处于一个有点混乱的环境中,我正在寻找工具来帮助我们标准化我们的开发工作并让我们在一个体面的时间回家。我想避免因为推动静态分析工具而失败,因为它“不实用”。<-(预期的管理层回应)
我想说真正使用 FxCop 的地方并不多。我们打开了它,但大多数开发人员忽略了产生的警告。
此外,这里的开发管理对真正推动清理警告并不感兴趣,部分原因是 FxCop 真的不喜欢管理层希望我们遵循的约定(变量名等)......
在我领导的项目中,我强制使用它,因为我认为它可以帮助我们成为更好的程序员。但是您必须先进入顶部才能让所有开发人员都遵循它。
请注意,对于您希望应用的规则,FxCop 是非常可定制的。您可能会发现通过逐步引入它效果最好;仅针对某组文件的某组规则,甚至最初排除所有遗留文件。
一定有一些规则您可能永远不会激活,因为它们不适合您的问题域。请记住,如果一段代码出于特定目的“违反规则”,则有一个属性可以将此类代码标记为可接受,尽管我会声明所有此类覆盖都必须使用Justification
属性上的属性来指示原因的规则。
最后,尽管内置规则对提高代码质量有很大帮助,但真正大的胜利在于自定义规则,它允许您检查公司惯例。如果您不以这种方式自动化您的“同行评审”,那么您就无法真正保证合规性。
我在工作中使用 FxCop 作为构建系统的一个集成部分,我们的公共库目前在发布时启用了所有规则并启用了最少的属性覆盖,并且在很多地方都值得。