背景
在看一个新项目的时候,通常我都会了解下这个项目的代码量,然后心里给个预期,大概需要多久了解这个项目。
wc
在以前,我一般都是使用 find
配合 wc
来完成,比如:
1 | root@yiran-workstation:/tmp/cloc |
显示有一个 installer.go
的文件,一共有 81行。但是这里有个问题,就是 wc 是不会统计代码里面的具体内容的,比如注释、空白行等。
这时候我们就需要一个更高级的工具了: cloc
cloc
cloc 是一个 Perl 语言实现的项目,用途就像它的名字全称:Count Lines of Code。
使用方法的话最简单的直接加上项目路径:
1 | root@yiran-workstation:~/go/src/github.com/kubermatic/kubeone |
可以看到统计结果,其中默认会按照语言分类。
如果是 Golang 的项目,且使用了 vendor ,那么可以通过 --exclude-dir
来过滤掉某些路径:
1 | aster ✗ $ cloc . |
有时候仅仅按照语言分类还不够,我们想看到具体的那些文件代码量比较大,可以使用 --by-file
参数:
1 | root@yiran-workstation:~/go/src/github.com/kubermatic/kubeone |