问题标签 [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.
algorithm - 八岁的Big-O?
我正在询问更多关于这对我的代码意味着什么。我从数学上理解这些概念,我只是很难理解它们在概念上的含义。例如,如果要对数据结构执行 O(1) 操作,我知道它必须执行的操作数量不会增加,因为有更多项目。O(n) 操作意味着您将对每个元素执行一组操作。有人可以在这里填空吗?
- 就像 O(n^2) 操作到底会做什么?
- 如果一个操作是 O(n log(n)),这到底意味着什么?
- 是否有人必须抽大麻才能写出 O(x!)?
c# - 从 .NET 确定 C# 和 C++ 的 SLOC 和复杂性
几年来,我一直在我的项目中使用 SourceMonitor,以记录 C# 和 C++ 组件的源代码复杂性和基本 SLOC(包括注释)。这些用于向我们的客户进行外部报告,所以我无法争论它们的优点或不足。
我一直在研究一个存储库分析工具,它能够在任何日期/时间为我提供项目的快照视图。我要添加的下一个阶段是缓存指定文件和修订的指标。
我知道 SourceMonitor 可以编写脚本以允许我提供要测试的文件并从结果文件 CSV 或 XML 中获取指标。
.NET 中是否有一个本地库,我可以使用它来做同样的事情——例如,避免产生外部进程并解析结果。
我只需要以下指标:
- SLOC
- 注释行数
- 最复杂方法的复杂性
- 最复杂方法的名称
我需要在C#代码和普通C++代码上运行它。
编辑:由于我已经拥有提供所需 GUI 和报告的工具,因此需要使用库/API 编写或生成指标,而无需手动步骤。理想情况下,我想获取指定文件/修订版(而不是整个项目)的指标,我的实用程序将自动从版本控制中拖动。
注意:我为此创建了一个赏金,并且在它过期时正在度假...... NDepends 的答案并不让我满意,因为它不查看源代码,而是查看程序集本身!
metrics - 如何解释代码指标(由 SourceMonitor 计算)
在阅读了“计算代码指标”问题的答案后,我安装了SourceMonitor工具并计算了一些指标。
但我不知道如何解释它们。
什么是指标的“好”值
- “百分比分支语句”
- “每类方法”
- “每个方法的平均语句”
- “最大方法或函数复杂度”
我在文档中没有找到任何提示,有人可以帮助我吗?
php - 日志/图表 PHP 执行时间
是否有任何工具可用于记录 php 站点的页面加载时间?
主要是寻找我可以看到加载时间随时间变化的趋势,我正在考虑使用 error_log() 将它们转储到文件中,但我不知道我可以用什么来解析它并显示图表
metrics - 有人使用 ABC Metric 来测量应用程序的大小吗?
它有一些不错的东西(比如它封装了圈复杂度的概念),我想知道是否有人在“现实生活”中使用过它。如果是这样,你的经验是什么?它是衡量大小的有用指标(与 KLOC 或功能点相反)吗?
对于那些想知道我在抽什么烟的人:这里有一些关于它的信息的链接:http ://c2.com/cgi/wiki/Wiki?AbcMetric
code-analysis - 了解代码指标
我最近安装了 Eclipse Metrics 插件,并为我们的一个项目导出了数据。
拥有这些漂亮的图表非常好,但我真的很想更深入地了解它们的含义。指标的定义只能告诉你它的真正含义。
有谁知道任何好的资源、书籍、网站等,可以帮助我更好地理解所有数据的含义,并了解如何在必要时改进代码?
我对传出耦合和圈复杂性等事物感兴趣,而不是代码行或每个方法的行数。
database - 您如何衡量流经您的软件的所有查询?
在他的一篇博客文章中,该网站的所有者向读者提出了这个问题,“您正在自动测量流经您的软件的所有查询,对吗?”
你怎么做到这一点?对数据库进行查询的每一行代码后面都有一行代码递增一个计数器?或者,是否有位于您的应用程序和数据库之间并为您执行此操作的工具?
metrics - 什么时候,如果有的话,“代码行数”是一个有用的指标?
有些人声称代码最大的敌人是它的大小,我倾向于同意。然而每天你都会听到诸如此类的事情
- 我一天就写了几行代码。
- 我拥有 x 行代码。
- Windows 是 x 百万行代码。
问题:“#lines of code”什么时候有用?
ps:注意,这种说法的时候,语气是“越多越好”。
oop - 面向对象语言的类与代码行的良好比例是多少?
对于面向对象的语言(比如 C++、C#、Java 等),类数与代码行数的良好比率是多少?
包括经理在内的许多人都喜欢用传统的 LOC(代码行)度量来衡量软件的复杂性,而许多顽固的面向对象的开发人员会说 LOC 毫无价值,因为它的类数才是重要的。而且我个人认为,类可能是一个更合理的复杂性度量,但是如果没有 LOC 度量,这些类的实际复杂性(其中的恶作剧者和神灵的数量)很难估计。
因此,有人知道对于一些编码良好的软件来说,什么可能是一个健康的比率?
编辑:在这种特殊情况下,我正在寻找一个比率来确定清理代码可能需要多少重构的大致估计。
编辑:有人知道一些大型 OSS 项目(如 Firefox、Apache、Webkit 等)的比率吗?
language-agnostic - 什么代码指标让你相信提供的代码是“糟糕的”?
每个文件的代码行、每个类的方法、圈复杂度等等。开发人员抵制并解决大多数(如果不是全部)!有一篇很好的Joel 文章(现在没时间找到)。
您推荐使用哪些代码指标来自动识别“糟糕的代码”?
什么可以说服大多数开发人员(你不能说服我们所有人接受一些糟糕的指标!:O))这段代码是“垃圾”。
只有可以自动测量的指标才有意义!