表达式不应过于复杂
10.9.1 ID_complexExpression
复杂的表达式不利于阅读与调试,易包含潜在的错误,应适当拆分。
下列情况可判定为复杂表达式:
- 运算符过多
- 有副作用的子表达式过多
- 优先级括号嵌套层次过深
- 函数调用或数组索引嵌套层次过深
- 三元表达式嵌套层次过深
审计工具不妨通过配置判断表达式是否合规。
示例:
f(g(h(i(....))); // Non-compliant
a || b || c || .... || z; // Non-compliant
++++++n; // Non-compliant
x ? y ? z ? .... : ....; // Non-compliant
配置
maxOperatorCount: 运算符最大数量,超过则报出
maxSideEffectPoints: 具有副作用的子表达式最大数量,超过则报出
maxParenthesesLevel: 优先级括号嵌套最大层数,超过则报出
maxPostfixLevel: 函数调用、数组索引嵌套最大层数,超过则报出
maxTernaryLevel: 三元表达式嵌套最大层数,超过则报出