LOC计数是否包括测试和评论?

Eli*_*sky 14 metrics code-metrics

虽然LOC(#行代码)是对代码复杂性的有问题的衡量,但它是最受欢迎的,并且在非常仔细地使用时,可以提供对代码库的至少相对复杂性的粗略估计(即,如果一个程序是10KLOC)另一个是100KLOC,用相同的语言编写,由大致相同能力的团队编写,第二个程序几乎肯定要复杂得多).

在计算代码行时,您是否更愿意计算注释?测试怎么样?

我见过各种方法.像cloc和sloccount这样的工具允许包含或排除注释.其他人认为评论是代码的一部分及其复杂性.

单元测试存在同样的困境,有时可以达到测试代码本身的大小,甚至超过它.

我已经看到了整个范围内的方法,从仅计算"操作"非注释非空白行到"XXX行测试,注释代码",这更像是在所有代码文件中运行"wc -l"项目".

您的个人偏好是什么?为什么?

Edw*_*ETT 19

在管理程序员方面,一位聪明的人曾告诉我"你得到了你衡量的东西".

如果你在他们的LOC输出中对它们进行惊人的评分,你往往会得到很多代码.

如果你根据它们关闭的错误数量对它们进行评级,那么你会发现很多错误.

如果您对添加的功能进行评分,则可以获得许多功能.

如果你根据圈复杂度对它们进行评分,你会得到非常简单的函数.

由于现在代码基础的一个主要问题是它们的增长速度以及它们一旦发展变化有多么难以改变,我倾向于回避使用LOC作为度量标准,因为它驱动了错误的基本行为.

也就是说,如果你必须使用它,那么无需评论和测试,并且需要一致的编码风格.

但如果你真的想要一个'代码大小'的度量,只需tar.gz代码库.它倾向于作为对"内容"的更好的粗略估计,而不是计算易受不同编程风格影响的行.

  • 如果按客户满意度对其进行评级,则会获得非常大的费用报告.;) (5认同)
  • 我想知道结论会是什么,如果您要在列表中添加"如果您按客户满意度评价,......". (2认同)

Bil*_*ard 9

还必须保持测试和评论.如果你打算使用LOC作为一个指标(我只是假设我不能告诉你),你应该给出所有三个(实际代码,注释,测试行).

最重要的(也是显而易见的)事情是你保持一致.不要仅使用实际代码行报告一个项目,而将所有三个项目组合起来报告另一个项目.查找或创建一个工具,为您自动执行此过程并生成报告.

Lines of Code:       75,000
Lines of Comments:   10,000
Lines of Tests:      15,000
                  ---------
Total:              100,000
Run Code Online (Sandbox Code Playgroud)

这样你可以肯定它会

  1. 完成.
  2. 每次都以同样的方式完成.