我一直在测量一个大代码库的圈复杂度。 循环复杂性是通过程序源代码的线性独立path的数量,有许多免费的工具供您select。 结果是有趣的,但并不奇怪。 也就是说,我所知道的最有趣的部分实际上是最复杂的(评分> 50)。 但是我发现有用的是每个方法都有一个具体的“坏”数字,这个数字是我在决定从何处开始重构的时候可以指向的。 你用循环复杂吗? 什么是你find的最复杂的代码?
我偶尔看到的一个术语是“环状复杂性”。 在这里,我看到了一些关于“如何计算语言X的CC”或“如何用最小量的CC来计算Y”的问题,但是我不确定我真的明白它是什么。 在NDepend网站上 ,我看到一个解释,基本上说:“一个方法中的决策数量,每个if,for,&&等等都给CC分数增加了+1”)是真的吗?这个不好吗?我可以看到,为了保持代码容易理解,可能需要保持if语句的数量相当低,但这真的是一切吗? 还是有一些更深层次的概念呢?
我有一个很大的源代码库分割在多个项目。 我想编写一份关于源代码健康状况的报告,找出需要解决的问题。 具体来说,我想召唤出具有高回圈复杂性的程序,识别重复,也许运行一些类似皮棉的静态分析来发现可疑的(因此可能是错误的)结构。 我怎样才能构build这样的报告呢?