什么是圈复杂度的范畴?例如:
1-5:易于维护
6-10:困难
11-15:非常困难
20+:接近不可能
多年来,我一直认为10是极限。除此之外的任何事情都是不好的。我正在分析一个解决方案,并试图确定代码的质量。当然,圈复杂度并不是唯一的衡量标准,但它可以有所帮助。有些方法的圈复杂度为200+。我知道这很糟糕,但我很想知道更低的范围,就像我上面的例子。
我发现这:
卡内基梅隆大学的上述参考值为圈复杂度值定义了四个粗略范围:
当为解决方案运行代码度量时,结果显示任何低于25的指标都是绿色的。我不同意这一点,但我希望得到其他的意见。
是否有一个公认的圈复杂度范围列表?
发布于 2013-04-05 19:15:46
我认为这取决于您的编程人员的能力,而且在很大程度上取决于您作为经理的敏感性。
有些程序员是TDD的坚定拥护者,如果不首先编写单元测试,就不会编写任何代码。其他程序员完全能够在不编写一个单元测试的情况下创建完美的、无bug的程序。每个群体所能容忍的圈复杂度水平几乎肯定会有很大的差异。
这是一个主观的度量;评估您的Code解决方案的设置,并将其调整到一个让您感到舒服的甜蜜点,从而给您带来合理的结果。
发布于 2013-04-05 21:22:50
没有预先定义的类别,也不可能进行分类,原因有几点:
switch语句可能非常清晰,以一种更OOPy的方式重写它们将不是很有用(并且会使初学者对代码的理解复杂化)。同时,这些说法也是一场灾难,从圈的复杂性来看。在实践中,我看到了源代码具有良好的圈复杂度,但这是可怕的。同时,我看到代码具有很高的圈复杂度,但是我没有太多的痛苦去理解它。
它只是没有,也不可能有任何工具,可以完美地指出,一个给定的代码是好的还是坏的,或者它是多么容易维护。因为你不能编程一个应用程序,它会告诉你某一幅画是一幅杰作,而另一幅画应该被扔掉,因为它没有艺术价值。
有些度量被设计打破(比如LOC或每个文件的注释数量),还有一些度量可以给出一些原始提示(比如bug的数量或圈复杂度)。在所有情况下,这些只是提示,应该谨慎使用。
https://softwareengineering.stackexchange.com/questions/194061
复制相似问题