问题标签 [code-metrics]

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.

0 投票
4 回答
4995 浏览

php - 计算 PHP 项目的软件指标

我想为我的 PHP OOP 项目计算一些代码指标。我尝试使用这里提到的一些工具。但除了了解的跟踪版本,它只呈现

  • 代码、注释、空行数
  • 类数 文件数
  • 功能数量
  • 声明性/可执行语句

我找不到任何适用于 PHP 的方法。

State of Flow 的 Eclipse 插件不适用于我的(不是那么新的)Galileo Eclipse v3.5。

我对以下措施感兴趣

  • 继承树的深度,
  • 平均函数长度,
  • 每类加权方法,
  • 重复,
  • ...

有什么工具吗?

0 投票
1 回答
272 浏览

java - 如何从命令行执行 Metrics2 插件?

是否可以从命令行运行Metrics Plugin

我对 Ant Task 不感兴趣。我正在寻找的是从将文件名作为参数传递的 shell 脚本运行它并在 stdout 上获取输出指标

有没有可能这样做。

0 投票
2 回答
796 浏览

java - CCN java函数-是否有关于什么是现实限制的指导方针

我正在使用 javancss 来检测方法的CCN。我们的源代码中有一些方法的值从 1 到 35 不等(甚至很大)。

有没有关于什么可能是现实限制的指导方针?这里的文章给出了一些想法——http: //java-metrics.com/cyclomatic-complexity/cyclomatic-complexity-what-is-it-and-why-should-you-care

我认为 10 是软限制,15 是硬限制。主要原因是测试变得复杂,值越大。

我想听听 SO 社区的意见。

0 投票
3 回答
5493 浏览

python - Python:代码统计

你知道是否有一个 Python 库可以生成关于代码的统计信息吗?我正在考虑指向一个包并获取类、函数、方法、文档块行等的数量。

它最终可能包括无用的东西,比如 lambda 的数量或其他疯狂的统计数据,只是为了好玩。

0 投票
3 回答
139 浏览

visual-studio - 在 Visual Studio 中编写代码时,是否有任何工具可以指示错误的代码指标?

是否有任何可用于 Visual Studio 的工具,可以即时通知程序员代码度量状态,例如在编写代码时(例如以交通灯的形式)?

0 投票
2 回答
320 浏览

c - 代码行作为预处理器定义的函数

我正在处理的一个项目(在C中)有很多代码部分,可以使用预处理器指令根据编译时配置包含或省略。

我有兴趣估计我的核心项目中增加或减少了多少行不同配置的代码。换句话说,我想在某处写几行,#define#undef了解这对 LOC 计数有何影响。

我对 LOC 计数器不熟悉,但粗略搜索一下,似乎大多数容易获得的工具都没有这样做。我假设这不是一个难题,而只是一个相当不常见的衡量指标。

是否有现有的工具可以做我正在寻找的东西,或者有一些简单的方法可以自己做?排除注释和空白行也是一个主要的优点。

0 投票
2 回答
441 浏览

visual-studio-2008 - 一个项目的可维护性指数为什么会在圈复杂度、类耦合和代码行数下降的情况下下降?

对于我的 C# 项目,重构后的代码指标增量为:

  • 可维护性指数:-4
  • 圈复杂度:-48
  • 继承深度:0
  • 类耦合:-9
  • 代码行数:-85

当公式为时,可维护性指数为何下降:

MI = MAX(0,(171 - 5.2 * ln(Halstead 体积) - 0.23 * (圈复杂度) - 16.2 * ln(代码行数))*100 / 171) ?

0 投票
2 回答
4362 浏览

c# - “继承深度”对方法意味着什么?

我刚刚安装了用于代码分析的 Visual Studio Power Tool查看结果的查看器。顺便说一句,很棒的工具!

当我单击“分析解决方案”时,我得到结果:

  • 可维护性
  • 圈复杂度
  • 继承深度
  • 类耦合
  • 代码行

我理解这些都是什么意思,除了类中的每个方法都有不同的“继承深度”值,而类的值更大。

有人对这可能在说什么有解释吗?

0 投票
4 回答
2164 浏览

continuous-integration - 每次构建都应该执行代码覆盖率吗?

我是棕地应用程序开发的忠实粉丝。毫无疑问,这是一本很棒的书,我会向所有开发者推荐它。我在这里是因为我在书中谈到了代码覆盖率。在我的新店,我们使用 Team City 进行自动化构建/持续集成,构建完成大约需要 40 分钟。布朗菲尔德的书谈到了无摩擦开发以及我们如何减轻开发人员必须承受的共同负担。这是我在第 130 页读到的内容。

“代码覆盖率:一个价格的两个进程?从清单 5.2 中的示例目标中可以看到,您最终会得到两个输出文件:一个带有测试结果,一个带有代码覆盖结果。这是因为您实际上在此任务期间执行您的测试。

如果您正在运行代码覆盖任务,从技术上讲,您不需要在单独的任务中执行测试。出于这个原因,许多团队将用自动代码覆盖任务代替他们的测试任务,本质上是在 CI 过程中执行这两个操作。CI 服务器将编译代码,对其进行测试,并在每次签入时生成代码覆盖率统计信息。

尽管这种方法在概念上没有任何问题,但请注意一些缺点。首先,生成代码覆盖率统计信息会产生开销。当有很多测试时,这种开销可能足够大,以至于以运行时间较长的自动构建脚本的形式引起摩擦。请记住,主构建脚本应尽可能快地运行,以鼓励团队成员经常运行它。如果运行时间过长,您可能会发现开发人员正在寻找解决方法。

由于这些原因,我们建议将代码覆盖任务与构建脚本的默认任务分开执行。它应该定期运行,可能作为构建文件中的单独计划任务,每两周甚至每月执行一次,但我们认为该指标没有足够的好处来保证在每次检查时执行它的额外开销 -在。”

这与我当前商店的做法相反,我们每次构建都执行 NCover。我想去找我的领导并要求我们不要这样做,但我能做的最好的就是告诉他“这就是布朗菲尔德书上所说的”。我认为这还不够好。所以我依靠你们来向我介绍你们在这个话题上的个人经历和建议。谢谢。

0 投票
3 回答
166068 浏览

java - 如何使用 IntelliJ IDEA 查找所有未使用的代码?

当我在 .java 文件中时,未使用的代码通常显示为灰色或带有绿色下划线,表示此代码可能(可能是因为一些奇怪的 JNI/Reflection 极端情况)未被使用。但是我有这个包含数千个 Java 文件的项目,我想找到这些可能未使用的代码的所有实例。我怎样才能在 IntelliJ IDEA 中做到这一点?