如何阅读/改进 PHP 计算的 C.R.A.P 指数

2024-04-06

我刚刚开始使用 PHPUnit 及其丰富多彩的代码覆盖率报告。我了解所有的数字和百分比,除了一个:C.R.A.P 指数。谁能给我一个可靠的解释,解释它的含义、如何分析它以及如何降低它?


@Toader Mihai 提供了可靠的解释。 https://stackoverflow.com/a/4731869/5441(我的+1)

如何降低:

编写不太复杂的代码或编写经过更好测试的代码。 (见下图)

更好的测试代码?

在这种情况下,这仅意味着:更高的代码覆盖率,通常会导致编写更多的测试。

不太复杂的代码?

例如:将您的方法重构为更小的方法:

// Complex
function doSomething() {
    if($a) {
        if($b) {
        }
        if($c) {
        }
    } else {
        if($b) {
        }
        if($c) {
        }
    }
}

// 3 less complex functions
function doSomething() {
    if($a) {
        doA();
    } else {
        doNotA();
    }
}

function doA() {
    if($b) {
    }
    if($c) {
    }
}

function doNotA() {
    if($b) {
    }
    if($c) {
    }
}

(只是一个简单的例子,我确信您会找到更多资源)

其他资源:

首先让我提供一些额外的资源:

关于垃圾索引的创作者博客文章 http://www.artima.com/weblogs/viewpost.jsp?thread=210575

万一:圈复杂度解释 http://en.wikipedia.org/wiki/Cyclomatic_complexity。 PHP_CodeSniffer 和 PHPMD 等工具会告诉您该数字,以防您想知道。

虽然由你来决定什么数字是“好的”,但一个经常建议的数字(恕我直言,这个数字有点高)是一个垃圾指数30得到这样的图:

alt text (You can get the .ods file here: https://www.dropbox.com/s/3bihb9thlp2fyg8/crap.ods?dl=1 https://www.dropbox.com/s/3bihb9thlp2fyg8/crap.ods?dl=1 )

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何阅读/改进 PHP 计算的 C.R.A.P 指数 的相关文章

随机推荐