作用域及类型嵌套不应过深
8.46 ID_nestedTooDeep
作用域及类型嵌套过深会造成阅读和维护困难。
建议:
- 函数作用域嵌套不超过 7 层
- 内联函数作用域嵌套不超过 2 层
- lambda 表达式内作用域嵌套不超过 5 层
- 类、结构体嵌套不超过 3 层
- 命名空间嵌套不超过 4 层
示例:
if (cond0)
if (cond1)
.... nested 10 layers ....
if (cond10) // Terrible
....
审计工具不妨通过配置决定嵌套层数是否合规。
配置
maxFunctionNestedDepth: 函数作用域最大嵌套层数,超过则报出
maxInlineFunctionNestedDepth: 内联函数作用域最大嵌套层数,超过则报出
maxLambdaNestedDepth: 函数作用域最大嵌套层数,超过则报出
maxTypeNestedDepth: 类型最大嵌套层数,超过则报出
maxNamespaceNestedDepth: 命名空间最大嵌套层数,超过则报出