处理警告的最佳做法

Pav*_*tov 11 c# warnings

我目前正在开发的项目每次构建时都会生成30多个警告.从项目开始就忽略了它们.我想由于缺乏关于警告的政策.

你通常如何处理这个?完全忽略它们?尝试一次修复它们(这需要一些时间)?或者一路上一点一点地修复?

csa*_*aam 12

只有30个人工作2个小时,男人只需修理它们.

我完全不同意那些说截止日期取代修正这些警告的人.与现在修复问题相比,您将在后期代码完成阶段浪费更多时间来解决问题.忽略你的经理他可能是一个想要对老板好看的白痴.初始质量和正确的设计比他的任意期限(在合理范围内)更重要.事实上,你首先有警告意味着某人对代码很邋..仔细检查存在警告的区域是否正确.

如果您正在使用代码分析或正在编写C/C++,那么警告有时真的无效.在那种情况下,编译它们(C/C++)或System.Diagnostics.CodeAnalysis.SuppressMessage.这可以从VS2008自动完成.

我没有看到任何在代码分析之外无效的.net警告.

  • 只要可以测试更改,我同意支持"不破窗口"策略.我已经看到警告"已修复"但没有足够的测试结果导致产品问题挥之不去,一旦代码在街上就难以修复.没有破坏窗口从Pragmatic Programmer书中获取 (4认同)

JSB*_*ոգչ 9

我强烈建议使用设置将警告视为错误.当然,这会导致项目停止构建,但这是实施合理错误策略的唯一方法.

完成后,您可以检查自己的警告并做出一些合理的决定.可能有些警告是良性的,您不关心,因此请将这些警告添加到要忽略的警告列表中.修复其余部分.如果您现在没有时间修复它们,请添加#pragma(或C#equiv)以忽略每个文件中发生的特定警告,并为每个文件提交一个错误,以确保稍后解决.


Den*_*nis 8

在我们的开发团队中,每个人都需要在星期五的啤酒时间之前清理他们的警告.如果你不修理你的警告 - 没有啤酒给你.令人惊讶的是,这是一个很好的动力.

  • 好吧,我们不喜欢啤酒.可以用甜甜圈代替它:D (2认同)
  • 是的,您可以随意用您为团队提供的任何奖励来代替啤酒。它仍然可以正常工作... (2认同)
  • 此外,我们的构建脚本会跟踪警告并在构建电子邮件中突出显示新警告。我也一直在考虑是否向变更列表所有者发送电子邮件,如果他们添加了新警告,但是我需要添加更多逻辑,以便识别新警告,而不仅仅是用新行号触发旧警告。 (2认同)

Cer*_*rus 5

大多数程序员在编写每个构造后都会定期构建代码,只是为了看看它是否正确构建。这是警告被标记的时间(在 VB 中,它们也由后台构建标记)。

我制定了一项政策,在每次构建时修复警告。我也不接受我的团队发出的任何标记警告的代码。只有极少数的警告是“可接受的”。

因此,我的政策是,我不会在稍后将它们全部修复在一起,而是在它们被标记时修复它们。附带说明一下,当我的代码开始标记警告时,我会责备自己编写的代码不符合我的标准。


Jim*_*ans 5

去年秋天,我继承了一个新的 5,000 行 Java 子系统,其中有 100 个被忽略的警告。与这里的其他受访者一样,我的政策是修复每个警告,在这样做时,我发现 100 个警告中有 3 个是真正的编程错误。警告的出现是有原因的,所以不要忽视它们,要修复它们。