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

c# - Visual Studio 中的代码度量计算

以下代码指标计算的首选分数范围是多少

  • 可维护性指数
  • 圈复杂度
  • 继承深度
  • 类耦合
0 投票
2 回答
884 浏览

c# - 如何衡量 C# 代码的 SOLIDness?

有哪些指标以及哪些工具可以衡量 C# 代码的SOLID ness?或指示哪些地方最有害地违反原则的工具?

0 投票
8 回答
950 浏览

code-metrics - 是否有一本书概述了不同类型的源代码指标?

我必须提交一篇关于在软件工程过程中使用源代码度量的论文。我认为最好先介绍一些源代码指标的分类(例如使用平面 LOC 计数与对代码进行一些静态分析),但我找不到一本书或文章来介绍不同类型的指标和可能的一些历史背景信息(我的导师更喜欢书籍和文章而不是网站)。

有人知道这样的来源吗?

0 投票
4 回答
1359 浏览

c# - 有没有一种标准的方法来计算 C# 中的语句

我正在查看除代码行之外的一些代码长度指标。Source Monitor 报告的内容是语句。这似乎是一件很有价值的事情,但 Source Monitor 计算某些事情的方式似乎不直观。例如,for 语句是一个语句,即使它包含变量定义、条件和增量语句。如果一个方法调用嵌套在另一个方法的参数列表中,整个事情就被认为是一个语句。

是否有一种标准的方式来计算陈述,并且它们的规则是否适用于这种事情?

0 投票
2 回答
1061 浏览

parsing - 编程语言解析器的来源?

我正在清理我的一个旧项目,它计算了一些关于大型软件项目的简单指标。指标之一是文件/类/方法的长度。目前我的代码“猜测”其中类/方法边界基于非常粗略的算法(遍历文件,保持“当前深度”并在遇到不带引号的括号时对其进行调整;当您返回到类或方法开始的级别时,认为它已退出)。但是,此过程存在许多问题,并且检测深度何时发生变化的“简单”方法并不总是有效的。

为了得到准确的结果,我需要使用规范的方式(在每种语言中)检测函数定义、类定义和深度变化。这相当于编写一个简单的解析器来为我希望我的项目适用的每种语言生成至少包含这些元素的解析树。

显然,之前已经为所有这些语言编写过解析器,所以看起来我不应该重复这项工作(即使编写解析器很有趣)。 是否有一些开源项目为一堆源语言收集现成的解析器库?或者我应该只是使用 ANTLR 从头开始​​制作我自己的? (注意:我很高兴将项目移植到另一种语言以利用现有的大量资源,因此,如果您知道其中一种,那么它是用哪种语言编写的并不重要。)

0 投票
2 回答
209 浏览

.net - 衡量面向对象性的指标

是否有一个指标可以帮助确定系统或应用程序的面向对象性?我在 .NET Reflector Add-ins codeplex 项目中看到了一些非常简洁的指标,但还没有这样的指标。如果不存在这样的指标,它甚至可能或有用吗?面向对象编程有 3 个假定的原则:封装、继承和多态;一个根据这些对程序进行排名的工具可能能够显示 C#(或类似)代码库中放弃了整个面向对象的理想的区域,以及与该区域相关联的错误数量与项目的其余部分相关联。

0 投票
4 回答
10062 浏览

c# - 为什么这个可维护性指数会增加?

如果有人可以根据 Visual Studio 的 Code Metrics 规则向我解释以下两段代码之间的区别,我将不胜感激。如果我不封装所有内容,为什么可维护性指数会略有增加using ( )

样本 1MI 得分 71

样本 2 ( MI 分数 73 )

我理解指标在更广泛的背景和理解之外毫无意义,程序员应该谨慎行事。虽然我可以使用 将分数提高到 76 return Convert.ToBase64String(sha1.ComputeHash(Encoding.Unicode.GetBytes(plainText))),但我不应该这样做。我显然只是在玩数字,那时它真的不再具有可读性或可维护性。我很好奇这种情况下增加背后的逻辑可能是什么。这显然不是行数。

0 投票
6 回答
2295 浏览

code-coverage - 现实世界中可接受的最小代码覆盖率

可能重复:
单元测试的合理代码覆盖率是多少(为什么)?

我正在整理一些关于单元测试代码覆盖率的指导方针,我想指定一个真正有意义的数字。很容易重复我在互联网上看到的 100% 口头禅,而无需考虑成本效益分析以及实际收益递减的情况。

我征求那些实际报告过现实生活中的大中型项目代码覆盖率的人的意见。你看到的百分比是多少?多少是太多了?我真的想要一些平衡(以数字表示),这将有助于开发人员生成高质量的代码。65% 的覆盖率是否太低而无法预期?80%太高了吗?

0 投票
2 回答
6324 浏览

language-agnostic - 声称每行代码的错误数量是恒定的,无论使用何种语言

我听人说过(尽管我记不起具体是谁),无论使用什么语言,每行代码的错误数量大致是恒定的。支持这一点的研究是什么?

编辑添加:我无权访问它,但显然本文的作者 询问了每个代码行 (LOC) 的错误数量是否与用不同编程语言编写的程序相同的问题。”

0 投票
7 回答
7917 浏览

visual-studio - Visual Studio Code Metrics 和 switch case 的可维护性指标

作为一个喜欢遵循最佳实践的人,

如果我运行代码指标(在解决方案资源管理器中右键单击项目名称并选择“计算代码指标” - Visual Studio 2010):

它给了我61的可维护性指数

(当然,如果你只有这个,这是微不足道的,但如果你使用像类这样的实用程序,其哲学正在做这样的事情,你的实用程序类的可维护性指数将非常糟糕..)

这有什么解决办法?