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

unit-testing - 单元测试的合理代码覆盖率是多少(为什么)?

如果您要为单元测试规定最低百分比的代码覆盖率,甚至可能作为提交到存储库的要求,那会是什么?

请解释您是如何得出答案的(因为如果您所做的只是选择一个数字,那么我可以自己完成所有这些;)

0 投票
18 回答
12016 浏览

code-metrics - 代码度量的魅力是什么?

我最近在 SO 上看到了许多与“代码指标”相关的问题,我想知道它的魅力是什么?以下是一些最近的例子:

不过,在我看来,没有任何指标可以替代代码审查:

  • 某些指标有时可能表明需要审查的地方,并且
  • 短期内指标的根本变化可能表明需要审查的地方

但是我想不出一个单独的指标本身总是指示“好”或“坏”代码 - 总是有例外和测量无法看到的事情的原因。

从我忽略的代码指标中是否有一些神奇的见解?懒惰的程序员/经理是否在寻找不阅读代码的借口?人们是否会看到巨大的遗留代码库并寻找起点?这是怎么回事?

注意:我已经在答案和评论中针对特定线程提出了其中一些问题,但没有得到任何回复,所以我认为我应该向整个社区提问,因为我可能遗漏了一些东西。运行一个指标批处理作业并且实际上不必再次阅读其他人的代码(或我自己的)会很好,我只是认为它不实用!

编辑:如果不是所有正在讨论的指标,我对大多数指标都很熟悉,我只是不认为它们的意义是孤立的,也不是任意的质量标准。

0 投票
5 回答
5562 浏览

code-metrics - 验证数据时降低圈复杂度的最佳方法是什么?

现在,我正在开发一个 Web 应用程序,该应用程序从可能返回空结果的数据库中接收大量数据。当通过应用程序的圈复杂度时,许多函数的权重在 10 到 30 之间。在大多数情况下,大多数具有高数字的函数都有很多类似于以下的行:

这引出了我的问题,尝试降低这些数字的最佳方法是什么?现在,我正在考虑将大多数功能置于 10 以下。

0 投票
8 回答
6145 浏览

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

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

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

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

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

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

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

0 投票
7 回答
1033 浏览

coding-style - 我们应该使用哪些指标来判断代码质量?

我目前正在从事一个大型项目,许多开发人员随着时间的推移工作,代码很糟糕。经过多次重构,我们现在到达了一个点,代码没问题。现在我在想“ok”是什么意思——可能对每个人来说都是不同的。

你认为可以指定“ok”吗?什么是重要的?NDepend 指标?测试覆盖率?注释?编码风格?文档?

我知道已经有很多关于编码风格或评论的话题(例如这里)。这个问题只是关于哪些事实是重要的。

0 投票
3 回答
8722 浏览

visual-studio-2008 - 如何自动化 Visual Studio 的代码指标功能

我想自动化在 .NET 解决方案上收集代码指标的过程。有什么方法可以让 msbuild 运行 VS2008 开发版中包含的 Code Metrics 功能?

我最终可能会使用SourceMonitor,但我想知道是否有办法从命令行使用 VS 代码指标引擎。

0 投票
6 回答
4015 浏览

visual-studio - 如何确定 C++ 项目中的代码行数?

在 Visual Studio 中,有没有一种快速的方法可以知道项目中存在多少行代码?

0 投票
6 回答
51545 浏览

function - 一个函数/过程/方法应该有多少行代码?

可能重复:
什么时候函数太长?

我最近接到了一项令人羡慕的任务,即审查另一位开发人员编写的糟糕代码并记录不良做法。(当然,这一切都是为了摆脱为开发人员的工作付出的代价,而不是任何利他的理由!)

审查过的代码有几个程序是多行代码 - 最长的将近 600 行。我想到的几个问题是可维护性和可读性。

诀窍是我需要向外行证明为什么这是一种不好的做法,并且如果可能的话,用一本备受推崇的最新参考书来支持它。类比也很好。

有任何想法吗?

重复: 什么时候函数太长?
重复: 最大函数大小的最佳规则?

0 投票
8 回答
486 浏览

code-metrics - 您如何定义“不需要的代码”?

您如何定义“不需要的代码”?


编辑:

恕我直言,任何具有 0 个活动调用成员(递归检查)的代码成员都是不需要的代码。(函数、方法、属性、变量都是成员)

0 投票
3 回答
1760 浏览

metrics - 显示 SLOC 和 SLOC 修改、添加、删除的 Linux 工具

我目前正在使用 SLOCCOUNT 工具来获取代码库的源代码行 (SLOC)。

但是,它不支持比较两个版本的代码库然后报告:

  • 代码行 (LOC) 已修改
  • 已删除 LOC
  • 已添加 LOC

谁能建议一个基于 linux(最好是免费)的工具来做到这一点?