问题标签 [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 投票
7 回答
1683 浏览

oop - 度量和面向对象的编程

我想知道是否有人经常使用指标来验证其代码/设计。例如,我想我会使用:

  • 每个方法的行数(< 20)
  • 每个方法的变量数 (< 7)
  • 每个方法的参数数量 (< 8)
  • 每个类的方法数(< 20)
  • 每个类的字段数(< 20)
  • 继承树深度 (< 6)。
  • 方法缺乏凝聚力

这些指标中的大多数都非常简单。

您对这种措施有什么政策?您是否使用工具来检查他们的(例如 NDepend)?

0 投票
26 回答
22509 浏览

process - 最有用的软件开发指标是什么?

我想跟踪可用于改进我团队的软件开发过程、改进时间估计和检测在项目执行期间需要解决的特殊情况变化的指标。

请将每个答案限制为一个指标,描述如何使用它,并对好的答案进行投票。

0 投票
3 回答
754 浏览

svn - 从 SVN 获得有用的报告 - 非代码文件弄乱了统计数据

我的项目有一个 SVN 存储库;它保存代码、文档、图表等。与项目相关的所有内容都在那里并进行了版本控制。但是,我正在尝试为我的代码获取某种智能统计信息。我使用的统计程序是 StatSVN——据我所知,它们似乎是同类中最好的。但是,我得到了旧文件、Word 文件等的结果,这些结果使图表出现偏差。

解决这个问题并获得有关我的 cpp 文件的可靠信息的想法?我不只是想重建回购,但我担心这可能是目前最好的主意......

0 投票
8 回答
4008 浏览

language-agnostic - 寻求有关结构化代码以降低圈复杂度的说明

最近我们公司开始每周测量我们代码中函数的圈复杂度(CC),并报告哪些函数得到了改进或恶化。所以我们开始更加关注函数的CC。

我读过 CC 可以非正式地计算为 1 + 函数中的决策点数(例如 if 语句、for 循环、选择等),或者通过函数的路径数......

我知道减少CC的最简单方法是重复使用Extract Method重构......

有些事情我不确定,例如以下代码片段的 CC 是什么?

1)

他们都做同样的事情,但是第一个版本是否因为 for 语句而具有更高的 CC 呢?

2)

假设该语言进行短路评估,例如 C#,那么这两个代码片段具有相同的效果......但是第一个片段的 CC 是否更高,因为它有 3 个决策点/if 语句?

3)

这两个代码片段做了不同的事情,但是他们有相同的CC吗?还是第一个片段中的嵌套 if 语句有更高的 CC?即嵌套的 if 语句在心理上更难理解,但这反映在 CC 中吗?

0 投票
1 回答
925 浏览

metrics - 什么是沼泽图?

有人告诉我沼泽图,解释说它们通过测量给定产品的传入缺陷和传出修复率来预测代码质量很有用。

不幸的是,我无法找到有关这些图表的其他信息,我想知道这是否是特定于一家公司的行话。

你能解释一下什么是沼泽图吗?

0 投票
8 回答
6145 浏览

metrics - LOC 计数是否应该包括测试和评论?

虽然 LOC(# 代码行)是衡量代码复杂性的一个有问题的衡量标准,但它是最流行的一种,如果使用得非常小心,至少可以粗略估计代码库的相对复杂性(即,如果一个程序是 10KLOC另一个是 100KLOC,由具有大致相同能力的团队用相同的语言编写,第二个程序几乎肯定要复杂得多)。

在计算代码行数时,您更喜欢计算注释吗?测试呢?

我已经看到了各种方法。cloc 和 sloccount 等工具允许包含或排除注释。其他人认为注释是代码的一部分及其复杂性。

单元测试也存在同样的困境,有时会达到被测代码本身的大小,甚至超过它。

我已经看到了各种方法,从仅计算“可操作”非注释非空白行到“XXX 行测试、注释代码”,这更像是在所有代码文件上运行“wc -l”项目”。

你的个人偏好是什么,为什么?

0 投票
15 回答
20626 浏览

metrics - 一生中的代码行数

其中一家公司要求其潜在员工提供在其一生中以某种编程语言(如 Java 或 C#)编写的代码行数。因为,我们中的大多数人在多种语言的不同项目中都有多年的经验,而且我们几乎没有记录这一点,所以计算这个指标的最佳方法是什么。我相信 stackoverlow.com 的聪明成员会有一些想法。

这是一家在其领域中非常受人尊敬的公司,我相信他们有充分的理由提出这个问题。但也难以回答的是要考虑的代码类型。我是否应该只包括我实现的困难算法或我为例如具有 300 个属性并且其 getter/setter 是使用 IDE 生成的 POJO 编写的任何代码!

0 投票
2 回答
387 浏览

process - 贵公司收集什么样的统计数据来定义代码/软件产品质量

我所知道的大多数编程公司/经理只能根据事后发现/解决的错误数量来定义质量。

然而,大多数优秀的程序员一旦开始干预代码,就会天生就能感知质量。(对吧?)

您知道的任何编程公司是否成功地将这些信息转换为组织可以衡量和跟踪以确保质量的指标?

我问,因为我经常听到心怀不满的经理们的咆哮,他们无法说出真正的质量是什么。但是我听说像 HoneyWell 这样的一些组织有很多数字来跟踪程序员的表现,所有这些都转化为数字,并且可以在评估过程中勾选。因此,我向整个社区提出了问题,以提出他们所知道的统计数据。

关于可以很好地测量杂乱代码的工具的建议也会有所帮助。

0 投票
2 回答
3027 浏览

c# - .NET 2.0 c# 项目的 LoC(代码行)指标

请推荐一些免费工具,它们将帮助我使用命令行获取 C# 项目的代码行指标。

0 投票
14 回答
3215 浏览

c++ - 计算NLOC的简单脚本?

你知道一个简单的脚本来计算 NLOC(netto 代码行数)吗?脚本应该计算 C 代码的行数。它不应该计算空行或仅带有大括号的行。但这也不需要过于精确。