在这样的 javascript 代码中如何处理圈复杂度?
How procced cyclomatic complexity in such javascript code?
我的 javascript 中存在一些复杂性问题。看起来像:
function mainFunction(scope, element) {
var eventHandlerMap = {
'firstEvent': firstEventHandler,
'secondEvent': secondEventHandler,
.....
};
function firstEventHandler(element) {
if (element) {
//some code
} else {
//some code
}
}
function secondEventHandler(element) {
//some code
}
//and other EventHandler functions
}
现在 mainFunction 的复杂度为 41,但我的声纳允许不超过 10。我不擅长 javascript,也不知道如何解决它。
计算复杂度的方式应由下一个插件版本更改(请参阅 https://jira.sonarsource.com/browse/SONARJS-729)。
为什么不将 firstEventHandler 和 secondEventHandler 移到 mainFunction 之外?
如果你想实现信息隐藏,你可以使用 ES6 类 或者使用模块模式而不是嵌套函数。
我的 javascript 中存在一些复杂性问题。看起来像:
function mainFunction(scope, element) {
var eventHandlerMap = {
'firstEvent': firstEventHandler,
'secondEvent': secondEventHandler,
.....
};
function firstEventHandler(element) {
if (element) {
//some code
} else {
//some code
}
}
function secondEventHandler(element) {
//some code
}
//and other EventHandler functions
}
现在 mainFunction 的复杂度为 41,但我的声纳允许不超过 10。我不擅长 javascript,也不知道如何解决它。
计算复杂度的方式应由下一个插件版本更改(请参阅 https://jira.sonarsource.com/browse/SONARJS-729)。
为什么不将 firstEventHandler 和 secondEventHandler 移到 mainFunction 之外?
如果你想实现信息隐藏,你可以使用 ES6 类 或者使用模块模式而不是嵌套函数。