问题标签 [cyclomatic-complexity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 是否有任何工具可以在 Pro*C++ 源代码上进行圈计算?
是否有任何工具能够对 Pro*C++ 源代码进行代码度量?
我无法通过谷歌找到任何具体的东西。
有人对这个有经验么?
refactoring - 你觉得圈复杂度是一个有用的衡量标准吗?
我一直在尝试测量大型代码库的圈复杂度。
圈复杂度是通过程序源代码的线性独立路径的数量,并且有许多免费工具可供您选择的语言。
结果很有趣,但并不令人惊讶。也就是说,我知道最毛茸茸的部分实际上是最复杂的(评分> 50)。但是我发现有用的是每个方法都分配了一个具体的“坏”数字,作为我在决定从哪里开始重构时可以指出的东西。
你使用圈复杂度吗?你发现的最复杂的代码是什么?
c# - 用于计算代码块的代码复杂度的现有库
我得到一个包含任意数量代码的字符串。我想计算一个代表该字符串的代码复杂度的数字。就像是:
我意识到有很多工具可以为你做到这一点。 这些工具对我不起作用,因为我想以编程方式进行。 我希望该库位于 C# 中,但此时可以使用任何东西。
提前致谢!
c# - 确定代码循环复杂度的最佳工具
人们能否建议在 C# winforms 代码库中确定循环复杂性的最佳工具。
language-agnostic - 什么是圈复杂度?
我不时看到的一个术语是“循环复杂性”。在这里,我看到了一些关于“如何计算语言 X 的 CC”或“我如何用最少的 CC 做 Y”的问题,但我不确定我真的理解它是什么。
在NDepend 网站上,我看到一个解释,基本上是说“方法中的决策数量。每个 if、for、&& 等都会在 CC“分数”上加 1。真的是这样吗?如果是,为什么是这很糟糕吗?我可以看到人们可能希望将 if 语句的数量保持在相当低的水平,以使代码易于理解,但这真的是一切吗?
还是有更深层次的概念?
refactoring - 您维护的任何功能的最高圈复杂度是多少?你将如何重构它?
前几天,我正在使用NDepend(很棒的工具检查一下)对我维护的遗留系统进行一些探索。我的发现几乎让我在屏幕上喷了一口咖啡。该系统中按圈复杂度降序排列的前 3 个函数是:
- SomeAspNetGridControl.CreateChildControls (CC of 171!!!)
- SomeFormControl.AddForm (CC of 94)
- SomeSearchControl.SplitCriteria (CC of 85)
我的意思是171,哇!它不应该低于20或什么的吗?所以这让我很奇怪。您维护或重构的最复杂的功能是什么?您将如何重构这样的方法?
注意:我测量的 CC 是代码,而不是 IL。
c# - Visual Studio 中的代码度量计算
以下代码指标计算的首选分数范围是多少
- 可维护性指数
- 圈复杂度
- 继承深度
- 类耦合
java - 使用 jar 文件的圈复杂度
我正在做一个项目,该项目需要我找到 Apache ant 的圈复杂度(版本 1.1 到 1.6)。我被要求为此目的使用 jar 文件。我使用了几个工具(Xdepend 试用版和 Cyvis)来查看结果。然后我尝试使用 Ant Ver1.6 源代码的结果来验证结果。为了分析源代码,我使用了 Netbeans 插件,并且还手动找到了一些方法的 CC。
我发现在许多情况下,jar 文件中的 CC 几乎相同,但在某些情况下存在很大差异。我检查了一种这样的方法,发现它包含很少的 try 和 catch 块。我的问题是:
- java编译器是否进行了可能主要影响CC值的优化(比如循环展开)?是否建议使用 jar 文件进行此类分析?
- try 和 catch 块是否存在一些特定问题,在这种情况下我可以考虑其他分析方法?
- 有没有更好(更准确)的工具来进行这种分析?
请分享您在此主题上的经验。提前致谢。
干杯
cyclomatic-complexity - 具有多个退出点的代码的圈复杂度
如何找到具有多个出口点的函数的圈复杂度?wiki 页面说 p-s+2 其中 p 是决策点的数量,s 是退出点的数量。
但是更多的出口点不应该增加圈复杂度,因为它可能导致更多的独立路径吗?
干杯,
阿曼
cyclomatic-complexity - 圈复杂度的常见原因及其解决方案
在工作中,我们正在研究导致高圈复杂度的常见问题。例如,具有较大的 if-else 语句会导致高圈复杂度,但可以通过用多态替换条件来解决。你还发现了哪些其他例子?