我想知道是否有一种方法可以欺骗声纳忽略注释掉的代码,同时仍将其保留在内部。我想将代码片段留在其中以便稍后修改,但也想提高合规性。
我有这个例子
// bdgItems.setGpIncrease(zero);
这就是我遇到合规问题的地方。另一方面,像// get data points
这样的常规评论不会引起问题。我想将带注释的代码保留在那里,以便在下一个开发周期中继续我停止的地方,但就像我说的,减少问题。我尝试了几种方法来欺骗它,例如在单词之间添加空格的// [DELETE THIS] bdgItems.setGpIncrease(zero);
或// bdgItems . setGpIncrease ( zero );
,但它仍然知道!我想知道你们中的一些兽医是否知道任何技巧[我对声纳相当陌生]。
提前致谢!
只需用下划线替换点和分号即可。
代码示例:
documentClient.deleteDatabase("dbs/" + DATABASE_ID, null);
没有警告的结果评论将是:
// documentClient_deleteDatabase("dbs/" + DATABASE_ID, null)_
这是一个典型的技术债务管理问题。
如果您“将其留在那里以供稍后使用”,那么您确实在源代码中添加了技术债务,并且您打算稍后偿还。因此,SonarQube 将此注释掉的代码标记为问题是有意的行为。
您仍然可以选择将这些问题标记为误报,但我确实相信您应该将它们保留为真实问题,哪怕只是为了提醒自己回来修复它们。
使用 C# 省略行尾的分号会欺骗 Sonar(也可能适用于其他语言)。
这会发出
S125: Remove this commented out code
警告:
// string name = "Mustafa";
但这消除了警告:
// string name = "Mustafa"
实际上,Sonar 对注释掉的代码的检测是基于启发式的,因此不能完美地工作。这个呢?
// This Line Is Not Code;
此行确实发出
S125
警告。
另一方面,我不建议抑制或欺骗此警告,因为将代码留在注释中会使源代码膨胀,妨碍可读性,有时会让开发人员感到困惑,浪费他们的时间。
最后一点是注释代码可能有其用处。我倾向于在注释中留下一些可视化代码,用图形编程作为调试辅助。例如,在某些图形计算中,在屏幕上显示临时形状可能有助于验证其坐标或大小是否计算正确。但那些被注释掉的代码在所有注释中可能不会超过%0.1。
在控制台中,右键单击该消息,选择停用此规则并重新加载窗口。