圈复杂度Cyclomatic complexity
什么是圈复杂度
圈复杂度(Cyclomatic complexity,简写 CC)也称为条件复杂度,是模块结构复杂度的度量,数量上表现为独立路径的条数,即合理的预防错误所需测试的最少路径条数。 成立于1976年的McCabe&Associates公司开发出了McCabe Cyclomatic Complexity Metric(圈复杂度)技术。 Metric以软件复杂度测量的数目为基础,能帮助工程师识别难于测试和维护的模块,圈复杂度已经成为评估软件质量的一个重要标准。 人们可以用圈复杂度对软件的复杂度和质量进行衡量,来安排工程进度,在成本、进度和性能之间寻求平衡。
研究表明,程序的Cyclomatic复杂性与其可维护性和可测试性之间存在相关性,这意味着对于更高复杂性的文件,在修复、增强或重构源代码时出错的概率更高。 但是要注意,McCabe度量数大的程序,不见得结构化就不好。 例如,Case语句是良结构的,但可能有很大的McCabe度量数(依赖于语句中的分支数),这可能是由于问题和解决方案所固有的复杂性所决定的。 使用者应当自己决定如何使用McCabe度量所提供的信息。
圈复杂度阈值
Cyclomatic Complexity | Risk Evaluation |
---|---|
1-10 | 一个没有太大风险的简单模块 |
11-20 | 具有中等风险的更复杂模块 |
21-50 | 高风险的复杂模块 |
51 and greater | 风险极高的不稳定项目 |
我为什么建议前端重视「圈复杂度」?
https://juejin.cn/post/7340899332509368357
Contributors
作者:Long Mo
字数统计:441 字
阅读时长:1 分钟
文章作者:Long Mo
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Longmo Docs !