Clojure程序的特定软件指标

时间:2011-04-13 12:53:31

标签: clojure metrics

我们正在考虑编写一个静态分析器来收集Clojure代码的软件指标。当然它会处理明显的东西,如文件数量,函数,每个函数的参数等。我想知道是否有任何特定于Clojure代码的度量。有什么想法吗?

1 个答案:

答案 0 :(得分:13)

平均而言 - 我认为软件指标是一个可疑的想法 - 它们通常会分散你真正重要的问题,即“我们向客户提供多少价值?”。

话虽如此,我认识到在某些情况下它们可能是一种必要的邪恶,并且偶尔可以为您提供有关您的代码库的有用见解。

所以这里有一些可能是Clojure特有的。

  • 顶级定义的数量(可能表示为总符号数的比率?)
  • Java耦合:与Java互操作相关的符号的百分比(new,ClassName。,。someMethod等) - 理想情况下将耦合限制在负责Java互操作的特定模块中,即除了管理互操作的库之外,应该是verey low%
  • 函数的平均最大嵌套级别定义(我猜5好,10 +坏??)
  • 宏密度:需要宏扩展的表单的百分比
  • 使用docstrings的函数的百分比
  • 使用类型提示
  • 定义的符号或函数参数的百分比
  • 匿名函数的平均大小(这些函数可能很小!)
  • 使用clojure.core中的函数的百分比(给出一些关于“词汇范围”和代码复杂性的想法)
  • (感谢nickik!)创建的参考类型数量(动态变量,原子,参考和代理) - 如果你想要小心控制你的可变状态,这是必不可少的!

P.S。如果你得到这个工作,看到一些不同的开源clojure项目的结果变化真的很有趣!