9

ほとんどの JavaScript コード ファイルは次のようになります。

(function() {
  var Foo = function() {
    ...
  };

  var Bar = function() {
    ...
  };

  ...
}());

コードの循環的複雑度を計算する多くのツールを試しましたが、それらはすべて (私の観点からは) 間違ったレポートを生成します。

これに関する問題は、すべてのレポートがこの事実によってひどくゆがめられていることです: ラッピング関数はしばしば複雑さの円グラフの半分以上を占め、すべての平均値は偏っています.

ラッパー関数によってバイアスされずに、コードの実際の複雑さを取得する方法はありますか?

これらのツールはすべて間違っていますか? スコーピングのためにコードを関数内にラップするのは間違っていますか (そうは思いません)。これらのツールを使用するのは間違っていますか?

編集

複雑さを計算する前にラッパー関数を削除することが提案されました。私はそれを喜んで行いますが、それを自動的に行う信頼できる方法はありますか? これを無視して、適切な解決策を探してください。

4

1 に答える 1

3

オンラインで jsmeter.herokuapp.com を使用するか、Noah Peters による jsmeterを使用する jsmeter-online でソース表示できます。

このコードをプラグインしました:

(function () {
  function testFunction(x) {
    var y;

    switch (x) {
      case 1:
        y = x;
        break;
      case 2:
        y = x * 4;
        break;
      default:
        y = 0;
        break;
    }
    return y;
  }

  var FooBar = function () {
    // ...
  };
})();

内部関数testFunctionがより複雑であると正しく識別し (5)、複雑な無名関数にラップされている (1)。関数を次のように宣言しても機能します。var FooBar = function(){...}

お探しのツールのようです。


非推奨: jsmeter.infoのアーカイブ- 現在のドメインはスパムのようです

于 2013-05-11T06:18:48.460 に答える