4
我需要检查,如果我$type_id
变量是一组特定的ID之一。
对于除可读性以外,没有理由,我
switch($type_id) {
case Type::SOME_TYPE:
case Type::SOME_OTHER_TYPE:
...
//do stuff
去了哪里大部分向下继承到一个常见的情况。
但是这增加了圈复杂度,使PHPMD开始抱怨。
所以我想,我们只是用in_array()
来代替。
if (in_array($type_id, [
Type::SOME_TYPE,
TYPE::SOME_OTHER_TYPE,
...
])) {
//do stuff
}
问题
此时PHPMD停止抱怨,但不是圈复杂度依然存在,只是被隐藏了背后的in_array()
功能?
这是否意味着由于不可读性,CC仅被视为“混乱”? – Alec
@Alec不,这并不意味着难以阅读。它更多的是关于能够掌握或推理某种方法/功能。如果通过一段代码有很多可能的分支,对于这个输入x来说就更难说了,输出将是y。这反过来又直接影响了你需要覆盖这个功能的单元测试次数。维基百科的文章相当全面:https://en.wikipedia.org/wiki/Cyclomatic_complexity – Gordon