【问题标题】:Can you prevent the usage of #pragma warning disable? [closed]你能阻止#pragma 警告禁用的使用吗? [关闭]
【发布时间】:2021-07-10 17:50:12
【问题描述】:

最近,我们的团队试图更加严格地执行某些代码样式和质量准则。我正在尝试尽可能地自动执行此操作,使用 .editorconfig 文件来强制执行某些规则——在许多情况下阻止构建而不是生成将被忽略的警告。

当然,并不是每个人都对此非常热衷,现在人们只是添加#pragma disable 指令来绕过我们正在尝试执行的规则。有没有办法阻止人们这样做?我似乎找不到任何有关阻止使用 #pragma disable 的信息。我知道解决这个问题的最佳方法是培养一种人们甚至不会想到这样做的文化,但我对我的团队曾经发生的这种情况感到有些厌倦。

【问题讨论】:

  • 如您所说,这听起来像是一个文化问题。您可能应该进行一定程度的代码审查,并且代码必须符合编码标准(每个人都同意)才能合并。
  • 由于某些功能已部分实现且尚未准备好,您打算如何允许构建版本所需的编译指示?你从来没有这种情况吗?
  • 我投票结束这个问题,因为这是一个 programmer 问题,而不是 programming 问题。
  • @gunr2171 是的,可能是,但这可能就是答案。尽管这应该在社会层面上解决,但寻求技术解决方案并没有错误。这是一个类似的问题,您是否应该强制执行代码审查或将其设为可选。
  • 这里存在严重的培训和/或文化问题。向某些软件添加规则以阻止人们添加杂注定义只会导致更多的恶化。从源头上解决问题,确保开发人员知道为什么事情正在改变并且需要修复。

标签: c# pragma software-quality editorconfig


【解决方案1】:

去过那里,做到了。一开始,很多程序员会就新规则争论不休,或者试图绕过它们,即使他们在团队中达成了一致。但是当人们习惯了规则时,这最终会平静下来。您应该确保至少新代码遵循规则(即通过一致的审查)。旧代码可以随着时间的推移或需要修改时进行调整。还可以考虑在一段时间后查看规则,也许有些规则在您的场景中没有用,可以再次禁用。在启用全套 StyleCop 规则时,我个人认为有些规则对提高代码的可读性或一致性没有帮助。所以质疑某条规则的使用一定是合法的。

【讨论】:

  • 欣赏答案——对规则的质疑是合法的,我们正在向后弯腰倾听队友的担忧,并制定对我们团队有意义的规则。我们还在启用而不是启用完整套件之前查看每条规则。我们进行代码审查,我们不断审查标准……当人们根本不关心时,很难让他们关心,而且我不知道如何让人们关心。我想如果我们不能自动捕捉到那些#pragma disables,我们就必须非常彻底地寻找。
  • 当然你可以编写一个自己的工具来检查它(或者为 StyleCop 编写一个扩展 - 它有一个扩展 API)。但是,当#pragma 合法时,您将再次需要一种方法来禁用它。
猜你喜欢
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多