缘起
业界常提到一个词:代码行数。代码行数是一种简单的衡量一个软件规模的方式。
但是代码行数的具体统计方法的不同,也会使结果产生不可忽略的差异。
主要分歧有:
- 空行算不算?
- 纯注释的行算不算?
- 有行尾注释的行算1行还是2行?
- 项目文件算不算,SQL脚算不算?
多次百度都是各家有各家的标准,在我看来就是没有标准。许多工具干脆做成各种成分都统计出来,也有的提供参数让使用者自行决定统计哪些成分。本人本着“有标准就参照执行,无标准就创造标准”的原则来倡导一种标准,希望它真的可以成为多人采用的标准。
标准
- 空行 不算。
- 纯注释的行 算。
- 行内注释 不算。(即有行尾/行中注释的行只算1行, 如
int i = 3; //初始化
) - 由工具创建/导出的文件 不算。(如项目文件、导出的SQL脚本)
依据
- 空行指除了换行符外,没有任何字符或只有空格的行。有些童鞋写代码时喜欢顺手连续敲几个空行,这个真没必要,也不能让他们“钻空子”,所以不算。
- 纯注释的算,注释也是重要的代码的一部分,好的注释也是非常讲究的。
- 行尾注释有点让我纠结。它是注释与第2点同性质,但它一般比较简短,而且算的话一行含注释的代码算2行,也是“奇怪”。考虑再三,还是决定不算。同理,行中间的注释不算。
- 由工具创建的/导了的毕竟不是自己敲的,导出的SQL脚本如果算的话,真的很冲击敲代码的童鞋。你可能会说设计数据库也是一种繁重的工作,正是有了设计才有导出。也对,但同样是繁重的工作的设计图片,它并不导出“代码行”。综合考虑,这种不算。
建立标准是挺难的一种事,建立众人喜欢的标准更是难上加难。众口难调,许多人惯性地举出“特殊情况”来“反驳”。标准不好可以讨论改进,有标准总比没有标准好。