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