代码圈复杂度超过20,代码易出错,重构!
这就是坑,别信“简单易懂”的代码。
别在大型项目中使用未经过验证的算法。
代码圈复杂度超过20,代码重构。
这就是坑,别信高复杂度代码能快速完成。
10年前,某项目圈复杂度超过50,导致bug修复周期长达半年。
圈复杂度,其实很简单。它是一个衡量代码复杂度的指标,用行话说叫圈复杂度(Cyclomatic Complexity),其实就是前面一个小延迟把后面全拖垮了。先说最重要的,这个指标是通过计算程序中独立执行路径的数量来得出,通常用N表示。去年我们跑的那个项目,圈复杂度达到了500,这已经是一个相当高的数值了。
另外一点,圈复杂度越高,代码的可读性和可维护性就越低。举个例子,大概3000行代码的函数,如果圈复杂度是10,那么它可能相对简单;但如果圈复杂度是100,那可能就意味着这段代码非常复杂,充满了难以追踪的路径。
我一开始也以为圈复杂度只是一个理论上的指标,后来发现不对,它实际上在软件测试和重构中非常实用。等等,还有个事,圈复杂度超过20就可能会引起维护上的困难,这是业界的一个普遍经验。
所以,提醒一下,在编写代码时,尽量保持圈复杂度在合理的范围内,这样可以避免未来维护时遇到的坑。