TFS中的代码审核

3

我是TFS配置的新手。

目前我们的项目完成了50%,但我们发现我们的代码质量很差。我们考虑需要使用静态代码分析工具,如Resharper或其他产品,如StyleCop、CodeAnalysis和FxCop。

我们希望配置TFS,在检入包含触发代码分析警告的代码时拒绝检入。

但对于之前的代码,我们希望抑制现有的警告,以防止代码变得比现在更糟糕。


静态代码分析无法解决您的基本问题:与提交代码的团队进行沟通。与这些人交谈,他们不是外星人。培训他们,领导他们,表扬他们的优秀工作,指责他们的糟糕表现。ReSharper 无法解决这个问题。 - Ivan Jovović
1个回答

3
正如Ivan所提到的,你的根本原因不在于缺乏分析工具,而可能是开发团队与项目赞助人之间已经同意的质量和严谨度水平(或目前正在强制执行)之间的差异。可能是团队的压力太大,导致重要的审查行动被跳过,或者团队(或赞助商!)没有像您或赞助商一样对质量有相同的渴望。或者团队没有正确的知识水平来防止这些问题的发生。
最好的方法是在短时间内尽可能地解决问题。
警告:我曾经和许多团队一起经历了同时启用太多规则的效果。通常,人们不愿承认他们的工作没有达到标准,并且启用那些不直接导致错误的规则(例如“标识符大小写不正确”)可能会引起沮丧,从而严重阻碍您的动力。在我的经验中,仔细选择哪些规则需要立即解决,哪些可以等待以后再解决效果更好。一旦团队开发出解决这类问题的方法,您就可以轻松应用更多。

打开工具,例如为解决方案配置代码分析或使用Resharper的解决方案广泛分析功能,可以帮助您发现问题,但除非您的团队停止创建这些问题,否则它将无法解决它们或防止类似问题在未来出现。

提示:请注意,您还可以在构建期间打开Resharper使用Resharper CLI功能

如果代码本身太糟糕以至于触发大量警告可能会产生错误和问题,则我不会强制执行StyleCop。先解决这些问题,稍后再美化代码。您现在的优先事项是消除任何可能的错误。

CodeAnalysis和FxCop是相同的东西,因此您不需要同时启用两者。像Resharper这样的工具可以帮助您的开发人员通过使用魔术键ALT+ENTER快速消除许多问题。

如果您想创建一个干净的基线,可以运行一次代码分析,然后选择生成的所有警告,然后选择在全局抑制文件中抑制。这适用于代码分析问题,但不会抑制任何编译器警告,没有快速抑制所有当前编译器警告的简单方法。

提示:有时将现有的globalsupressions.cs文件临时重命名,以便将此“基线”单独存储可能有所帮助。然后您就知道哪些警告需要稍后修复。

提示:当开发人员抑制警告时,请让他们添加一个Justification="抑制原因"到生成的抑制中,这样您就可以区分经过仔细考虑的抑制和暂时的抑制。

根据您是否已经拥有构建服务器,您的下一步是安装Team Build,一旦您拥有了构建服务器,您需要设置构建定义。这个博客帖子涵盖了大部分步骤
在构建定义中将触发器设置为“门禁式检入”,并在“处理”选项卡上确保将代码分析设置为“始终”。如果您想要基于代码分析错误使构建失败,您需要创建一个自定义规则集,并为您的解决方案配置该规则集
为了使编译器错误导致构建失败,您还可以启用“将警告视为错误”。
一旦您启用了门控式签入构建,所有开发人员的更改都将被提示等待其构建完成。 您可以通过Web访问打开警报或使用Build Notification Tool,在成功提交更改时得到通知

提示:与其一次性打开所有规则(或将它们全部切换为在构建期间引发错误),您也可以选择逐个打开规则并进行修复。按类别打开规则为您提供了一个很好的机会来教导人们打开规则的重要性以及可能的解决方案。

更高级的解决方案是在Team Build环境中安装和配置SonarQube。 ALM Rangers和Sonar最近合作创建了安装指南和许多扩展,以实现Team Build和SonarQube的集成。您可以在此处找到安装指南

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接