最近正好需要统计下某项目代码行数,然后就找代码行数统计工具。以前找到过一个正则表达式,但是只有在VS2010下有用,VS2012和VS2013下的统计就不好使了。
接着搜索了一下代码行数统计绿色工具免费版,看到花花绿绿的浮动窗口和卧虎藏龙的下载链接,感觉非常令人生厌,而且,有些国产软件下载总是让你一不小心就中毒,所以最后还是放弃了下载。
当然,你知道,这点简单小功能,对于已经习惯自己搬砖搞定一切的码农,实在没有必要再费时间搜来搜去,而且那首歌唱得好,“Let it go,let it go...The code doesn‘t bother me anyway.”,所谓求人不如求己是也。
抽空自己写了这个代码行数分析winform工具,目前测试通过支持的语言有C#、Java、SQL、JavaScript和Python,共享出来,希望对你有帮助。
软件界面:
一、程序简单分析
统计分析代码行数,需要分析源文件。这里的程序选择简单的打开源文件的方法,但是读取内容不是一下子全部读完,而是一行一行读取,读取后,需要按统计条件分析并计数。
统计条件抽象如下:
代码源文件信息CodeInfo抽象如下:
返回的源文件统计信息CodeStatisticInfo抽象如下:
主要统计的业务逻辑在CodeCounterService的Calc方法中:
二、存在的主要不足和缺点
1、不同语言统计支持没有经过充分测试
目前这个小程序仅仅验证了自己经常使用的几种开发语言,其他语言未验证是否通过。
2、多线程统计支持不好
代码中,我想用Task提升性能,目前测试下来,多线程比单线程耗时更久,非常不友好。本来计划使用多线程技术打开文件并行分析每个文件的代码行数,毕竟,IO和计算密集型程序在多线程下应该能够发挥优势。但是看到根据目录并发分析统计代码效果并不好,所以我就直接放弃了多文件同时分析的实现。
3、统计数据不精确
代码行数统计并不完全准确,“统计”的时候,可能某项目下已经无效的代码也加入了统计。还有就是注释,不同语言的注释解析是个难题。再比如说压缩后的js文件,这个也会造成解析统计的不准确。
demo地址:PowerCodeCalculator
可执行文件下载:PowerCodeCalculator.exe
本文转自JeffWong博客园博客,原文链接:http://www.cnblogs.com/jeffwongishandsome/p/Sharing-A-Powerful-Tool-For-Calculate-Code-Lines.html,如需转载请自行联系原作者