6

我正在开发一个 Web 应用程序,我需要能够跟踪目录中的phpcss和代码html行。JavaScript/var/www

但是使用代码计数器的终端行,我自然想写更多的行并间隔代码,例如:

if($var == $other)echo("hi");

将作为:

if($var == $other)
{
    echo("hi");
}

这样我就可以在不做任何实际工作的情况下得出非常多的行数,有什么方法可以计算目录中代码的逻辑行数吗?有没有什么程序可以做到这一点?

谢谢!

4

3 回答 3

5

需要注意的是,“代码行”指标的意义非常可疑,您可以从找出空白行开始。

find . -name '*.php' -print0 | xargs -0 cat | egrep -v '^[ \t]*$' | wc

(例如)。

对于像 JavaScript 这样的语言,个人编码风格会对原始 LOC 产生非常重要的影响。考虑到有些人是这样写的:

if (testSomething()) return null;

if (somethingElse()) {
  doThis();
} else {
  doThat();
}

有些人是这样写的:

if (testSomething())
{
  return null;
}

if (somethingElse())
{
  doThis();
}
else
{
  doThat();
}

更有用的东西(尽管在我看来仍然是可疑的)将是一些类似于“陈述”的东西。当然,您需要一个能够明确理解不同语言语法的工具。

我将此统计数据称为“可疑”,因为在组织中,数字的弱本质往往会被遗忘,因为它会在一个又一个电子表格中使用。项目经理开始根据 LOC、记录的错误(也是可疑的)、签入(同上)等来提取趋势,而与真实生产力的相关性如此微弱的事实就消失了。

布道结束:-)

于 2012-12-30T00:09:20.633 回答
3

有一些程序,例如CLOC,可以计算不包括注释和空行的代码行数,但我认为它们不适用于您的示例代码。

我认为可能会为每种语言找到一些自动代码格式化程序,例如http://jsbeautifier.org/,并测量输出中的行数(最好使用前面提到的 CLOC)。可能会减少特定程序员的编码风格对结果的影响。

于 2012-12-30T00:24:30.373 回答
1

如果您想避免使用正则表达式的麻烦或实际尝试解析代码,您可以只计算分号和右大括号的数量。我的意思是,这两件事几乎总是有自己的台词。

于 2012-12-30T05:57:26.330 回答