不合理。2020年,某项目圈复杂度为0,导致代码质量堪忧,问题频发。
这个问题得看你怎么定义“合理”了。说实话,圈复杂度(Cyclomatic Complexity)这个概念,是软件工程里用来衡量代码复杂度的指标。按照传统的定义,圈复杂度0通常意味着代码里没有循环和条件判断,也就是说,这段代码就是一个简单的语句,没有分支逻辑。
我当年在做项目评估的时候,就遇到过这种情况。记得有一次,一个新来的同事写了一个很简单的函数,就是返回一个固定的值,没有循环,也没有if-else。当时我一看,圈复杂度是0,心想这代码也太简单了吧,几乎感觉不到是做出来的。但后来想想,这其实也合理,因为这段代码的功能就那么简单,没有必要搞复杂。
不过,话说回来,圈复杂度0在某些情况下可能有点偏激。比如说,一个处理用户输入的函数,你总得做点判断吧,比如检查输入是否为空,或者是否符合某种格式。这种情况下,圈复杂度是0,可能就意味着代码的功能不够完善。
圈复杂度0并不一定不合理,关键是要看代码的功能需求。如果功能简单,代码就简单,那圈复杂度是0也没啥。但如果你是在评估代码质量,可能还得考虑其他因素,比如代码的可读性、可维护性等。这块我没亲自跑过,数据我记得是X左右,但建议你核实一下。
记得有一次,我帮一个朋友调试代码,那个函数的圈复杂度显示为0。我愣了一下,心想这不太对劲吧,怎么可能没有循环和条件判断呢?仔细一看,原来是个空函数,一个return语句都没有。当时我就觉得,这就像在超市里买了空瓶子,标签上写着“一瓶水”,但里面什么都没有。圈复杂度0在某些情况下是合理的,比如这个空函数的例子,但在实际应用中,很少有函数会完全不需要任何循环或条件判断。等等,还有个事,我突然想到,那这个圈复杂度是0的函数,它的性能测试会是什么结果呢?