我最近安装了Eclipse Metrics插件并导出了我们的一个项目的数据.
拥有这些漂亮的图表非常好,但我真的想深入了解它们的意思.指标的定义只是告诉你它的真正含义.
有没有人知道任何好的资源,书籍,网站等,可以帮助我更好地理解所有数据的含义,并在必要时了解如何改进代码?
我对Efferent Coupling和Cyclomatic Complexity等感兴趣,而不是每行方法的代码行数.
我对代码统计工具感兴趣.具体来说,我需要获得有关Java EE代码的统计信息,但任何代码分析器都可以.我应该开始创建自己的一个还是有一些你用过的项目?
恩.LOC,班级数量,库...
你有什么经历?
我有一个安装了LAMP的繁忙的Web服务器,我想知道,有没有办法计算服务器中每秒执行多少查询(mysql)?
谢谢.
特别是,我有兴趣知道有多少行代码,但这跨越了许多文件.
我一直在使用notepad ++来编写代码,对于每个文件,它都显示行号,但当然我有空的返回以使代码更具可读性.
有没有人知道我能准确获得实际代码行的插件或工具?
我想知道是否有人使用Eclipse Metrics插件与不是Java的项目(特别是我正在尝试为几个PyDev项目生成代码指标).我已经阅读了Metrics项目的演练,但它表明在访问Project for Properties之前我应该在Java Perspective中,并且我应该找到Metrics部分.无论我打开哪个Perspective,我都不会为我的PyDev项目得到这个.任何建议或建议都会很棒.
有什么方法可以跟踪用户访问的应用区域或他或她使用的功能?我知道有几个预先存在的开源框架:
而且我知道像Flurry这样的服务也有帮助.有没有人知道任何其他选项,有没有人试图编写一个可以跟踪一些简单用户指标的系统?教程或示例将非常感激.
我使用的是带有13种情况的switch语句,每种情况只有一行返回值.
McCabe用红色描绘了它.有没有更简单的方法来编写一个大的switch语句?它看起来并不复杂,但我不喜欢默认设置变为红色.如果其他人在我的代码上使用相同的工具并看到红色的东西他们可能会认为我是愚蠢的:-)
编辑:我将不同的SQL类型映射到我自己的更抽象类型,因此减少了类型的总量.
case Types.TIME:
return AbstractDataType.TIME;
case Types.TIMESTAMP:
return AbstractDataType.TIME;
case Types.DATE:
return AbstractDataType.TIME;
case Types.BIGINT:
return AbstractDataType.NUMERIC;
case Types.DECIMAL:
return AbstractDataType.NUMERIC;
Run Code Online (Sandbox Code Playgroud)
等等...
java complexity-theory metrics coding-style switch-statement
我们使用jetBrains TeamCity持续集成服务器进行构建.
我们在TeamCity中有几十个不同的项目,并希望从他们的开发质量方面看到他们之间的一个大局,找出哪些项目缺乏质量和哪种意义.我们使用单位测试覆盖率,圈复杂度,可维护性指数,重复项,缺陷率等指标...
我们从测试工具收集TeamCity的指标,或者:
[##teamcity[buildStatisticValue key='<valueTypeKey>' value='<value>']所以我们在TeamCity中获得了它们,并且可以在每个项目图表上看到它们.我们甚至可以通过REST协议以XML或JSON格式将它们从TeamCity中取出.
我们的目标是了解所有项目的整体情况.这里有两个例子表是我们希望看到的:
或者它可以是具有类似方法的二维图表.
所以,问题是:
是否有这样的现有仪表板工具,可以显示描述的表和/或图表?单独的应用程序与TeamCity紧密集成,还是TeamCity的插件?
谢谢!
Linux中有许多程序可以显示文件的大小,其中一些以块为单位显示,有些以字节为单位.但是当谈到一些人类可读的形式,比如ls -sh,lvs,dd bs = size等等,当我们看到kb,KB,mB,MB,K时,我们如何判断它是1024还是1000的倍数?有些人将它们与像lvs这样的大写字母区分开来,有些像dd这样有不同的字符,但是,这些东西是否有一般规则,因为到目前为止我找不到它.谢谢.
最近,我在计算LCOM4的过程中遇到了一个问题,这个度量用于查找类的方法和属性是如何隐藏的.
LCOM4是"计算方法凝聚力缺乏的第四种方法",Hitz和Montazeri对此进行了描述(http://www.isys.uni-klu.ac.at/PDF/1995-0043-MHBM.pdf)并且目前是定义一个班级拥有多少责任的最佳方式.
我会尝试不使用特定的开发语言,因为我的问题是针对所有OOP语言.
让我基本上用默认算法解释它对不知道的人的作用:
Class Foo {
property a,b
function f1() { this.a = 1 }
function f2() { this.f1() }
function f3() { this.b = 3 }
}
Run Code Online (Sandbox Code Playgroud)
这个类有两个流程:
所以Foo的LCOM4是2.
让我们改变例如函数f2()来共享属性b.
Class Foo {
property a,b
function f1() { this.a = 1 }
function f2() { this.f1(); this.b = 1 }
function f3() { this.b = 3 }
}
Run Code Online (Sandbox Code Playgroud)
现在这个类只有一个流程:
这意味着Foo的LCOM4现在为1.
LCOM4 = 0或LCOM4 = 1表示班里有没有或只有1名责任,这是每个人都必须要为自己的班级,因为他们尊重小号的小号奥利德良好做法.
您可以在此处找到有关图表的更多信息:http: …