This function's cyclomatic complexity is too high
iletileri düzeltmek ve yalnızca bir switch
deyim içeren basit bir işlev üzerinde yanılmak istiyorum. Fonksiyonun siklizik karmaşıklığı (5) (W074) olarak hesaplanmıştır.Bir JavaScript işlevinin döngüsel karmaşıklığı anlama
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;
};
Bu basit durumda 5'e siklomatik karmaşıklık nasıl hesaplanır? Şimdiye kadar bir anahtar için karmaşıklığı azaltma fikri yoksa. Anlayışım için karmaşıklığı maks. 3 veya 4 :). Bir yöntemi kodlamak için en iyi uygulama, yalnızca bir switch
bildirimini içerir? codacy.com işlevi alabilir 5 yolları vardır maxcomplexity
4 veya 3.
Karmaşıklık hesaplaması ne yapıyor? – Pointy
Tek bir dönüşünüz olsa bile, geçiş boyunca 5 yol vardır. Bir harita/arama tablosu kullanabilirsiniz, ancak muhtemelen CC eşiğini 6 veya 8 olarak ayarlayabilir veya bu özel işlev için bu uyarıyı devre dışı bırakabilirim. – ssube
jshint –