声纳 - 前提条件与长条件块的保护条款

时间:2014-06-19 14:20:47

标签: sonarqube

Sonar中是否有一个检查可以识别何时可以使用保护子句检查前置条件,而不是将方法的整个主体包裹在if块中?

换句话说,我希望Sonar帮助我找到重构这样的东西的机会

 void method(args) {
   if (precondition(args)) {
     // do rest of method
   }
   // no other code after conditional
 }

进入这个:

void method(args) {
    if (!precondition(args)) {
      return;
    }
    // do rest of method;
 }

这提高了可读性并减少了方法体内部条件的嵌套深度。

Sonar的哪些规则会对此有所帮助?

Cyclomatic复杂性听起来像错误的指标,因为早期返回使得方法得分更复杂,而条件数相同。我正在寻找像平均嵌套深度这样的指标。

0 个答案:

没有答案