1. ホーム
  2. php

PHPで計算されたC.R.A.P指数の読み方・改善方法

2023-12-02 22:35:09

質問

私は PHPUnit を使い始めたばかりで、そのカラフルなコードカバレッジレポートも見ています。すべての数値とパーセンテージを理解していますが、ひとつだけわからないことがあります。C.R.A.P 指数です。この指数が何を意味するのか、どのように分析し、どのように下げるのか、誰かしっかりとした説明を提供してくれませんか?

どのように解決するのですか?

Toader Mihaiがしっかり説明してくれました。 (私からは+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) {
    }
}

(ほんの些細な例です。きっともっと多くのリソースが見つかるでしょう)

追加のリソースです。

まず最初に、いくつかの追加リソースを提供させてください。

インデックスに関するクリエイターのブログ記事

念のため 循環的複雑性の説明 . PHP_CodeSniffer や PHPMD のようなツールは、この数字を知りたい場合に役立ちます。

そして、どの数値が「OK」なのかはあなたが決めることですが、よく提案される数値(少し高いような気がしますが)は 30 で、このようなグラフになります。

(.odsファイルはこちらで入手できます。 https://www.dropbox.com/s/3bihb9thlp2fyg8/crap.ods?dl=1 )