Ich möchte This function's cyclomatic complexity is too high
Nachrichten beheben und stolpern auf eine einfache Funktion, die nur eine switch
Aussage enthält. Die zyklomatische Komplexität der Funktion wurde zu (5) berechnet (W074).Verständnis einer zyklomatischen Komplexität der JavaScript-Funktion
Configuration.prototype.loadAndParseDataFromStorageFilename = function(cmd) {
var jsonData;
var ext = path.extname(cmd.argumentDatasource.filename).toLowerCase();
var rawData = fs.readFileSync(cmd.argumentDatasource.filename).toString().replace(/\n/g, "").replace(/\r/g, "");
switch(ext) {
case ".config":
jsonData = xml.parseString(rawData);
break;
case ".xml":
jsonData = xml.parseString(rawData);
break;
case ".json":
jsonData = JSON.parse(cmd.argumentDatasource.filename);
break;
case ".js":
jsonData = require(cmd.argumentDatasource.filename);
break;
default:
var msg = colors.bgRed.white(cmd.argumentDatasource.filename + " not supported as data storage");
console.log(msg);
}
return jsonData;
};
Wie wird die zyklomatische Komplexität in diesem einfachen Fall auf 5 berechnet? Bis jetzt keine Idee, die Komplexität für einen Switch zu reduzieren. Für mein Verständnis würde ich die Komplexität auf max berechnen. 3 oder 4 :). Was ist die beste Methode, um eine Methode zu codieren, die nur eine switch
-Anweisung enthält? Es scheint, wie codacy.com setzt maxcomplexity
-4 oder 3.
Was macht die Komplexitätsberechnung? – Pointy
Es gibt 5 Pfade durch den Switch, auch wenn Sie nur einmal zurückkehren. Sie könnten eine Map/Lookup-Tabelle verwenden, aber ich würde wahrscheinlich den CC-Schwellenwert auf 6 oder 8 setzen oder die Warnung für diese bestimmte Funktion deaktivieren. – ssube
wurde von jshint –