语句过多块¶
ID: cpp/complex-block
Kind: problem
Security severity:
Severity: recommendation
Precision: high
Tags:
- testability
- readability
- maintainability
Query suites:
- cpp-security-and-quality.qls
此规则查找包含过多复杂语句的代码块,例如分支语句 (if
, switch
) 和循环 (for
, while
)。
包含过多连续语句的代码块是重构的候选对象。此处仅统计复杂语句(例如 for、while、switch…)。如果将每个复杂语句提取到一个函数中,顶层逻辑将更加清晰。
建议¶
通常,每个连续的复杂语句都会执行一个独立的任务。常见的做法是为每个复杂语句添加注释以描述其任务。为了提高可读性并促进复用,将每个任务提取到其自己的函数中。