PHPのローカル変数酷使度を計測する方法を変更しました
2025/03/19

PHPのローカル変数酷使度を計測するツールを作ってます。
ローカル変数を更新するとより酷使度が高くなるべきですが、v0.0.1までは、更新を酷使度に考慮できていませんでした。
v0.0.2 で、更新を考慮してローカル変数酷使度を算出するようになりました。
VariableHardUsage の計算方法(GitHub Copilotによる説明)
VariableHardUsage
は、関数内でのローカル変数の使用頻度とスコープの広さを評価するための指標です。この指標は、変数の使用される行番号の分散と、変数が代入される頻度に基づいて計算されます。
計算手順
- 変数の行番号を取得:
- 関数内で使用されるすべての変数の行番号を取得します。
- 行番号の平均を計算:
- 取得した行番号の平均を計算します。これは、行番号の合計を変数の数で割ることで求めます。
- VariableHardUsage の計算:
- 各変数について、行番号と平均行番号の差の絶対値を計算します。
- 変数が代入される場合、その差に係数(デフォルトでは2)を掛けます。
- これらの値をすべて合計することで、
VariableHardUsage
を求めます。
例
例えば、関数内に3つの変数があり、それぞれの行番号が10, 20, 30で、代入が行われる場合と行われない場合があるとします。この場合、行番号の平均は20です。
- 変数A: 行番号10, 代入あり
- 変数B: 行番号20, 代入なし
- 変数C: 行番号30, 代入あり
この場合、VariableHardUsage
は以下のように計算されます。
- 変数A:
|10 - 20| * 2 = 20
- 変数B:
|20 - 20| * 1 = 0
- 変数C:
|30 - 20| * 2 = 20
これらを合計すると、VariableHardUsage
は 20 + 0 + 20 = 40
となります。
このようにして、VariableHardUsage
は変数の使用頻度とスコープの広さを評価する指標として計算されます。この指標を用いることで、関数内でのローカル変数の使用状況を定量的に評価し、コードの可読性や保守性の向上に役立てることができます。