当前位置: 首页 > 科技观察

2021年你写了多少代码?这个Go工具帮你数一数

时间:2023-03-12 07:54:08 科技观察

大家好,我是polarisxu。2021年即将结束。一年后,你写了多少代码?Go代码有多少?虽然人们普遍讨厌用代码行数作为评价指标,但我们对一年的代码量有一个基本的概念。还是有必要掌握的。如果你搜索一下,你会发现有很多代码统计工具。比如sloccount[1],github.com/AlDanial/cloc等。貌似大家都喜欢统计代码行数。当然也有人直接使用grep、awk等工具。本文简要比较了两个工具:cloc和scc。这两个工具的原理是相似的。Mac下通过brew安装:$brewinstallclocscc其中cloc是Perl实现的,有13.1k+Stars;而scc是用Go实现的,项目地址:https://github.com/boyter/scc,有3k+Stars。使用这两个工具统计github.com/studygolang/studygolang项目。$cloc.4287textfiles.4028uniquefiles.Complexregularsubexpressionrecursionlimit(32766)exceededat/usr/local/Cellar/cloc/1.82/libexec/bin/clocline9334.580filesignored.github.com/AlDanial/clocv1.82T=5.68s(658.0files/s,85679.8行/秒)----------------------------------------------------------------------------语言文件空白注释代码-----------------------------------------------------------------------------JavaScript24583250490981174284JSON415127086826Markdown35913566031219Go2004962223820772HTML15310197914358CSS4212192926952YAML4556121209SQL2740847XML10137489790TypeScript1533228293SVG1500279INI24146144XSLT181101make644495BourneShell391150DOSBatch426044diff162025Nix11019zsh14147BourneAgainShell14167Dockerfile1415CoffeeScript2101--------------------------------------------------------------------------------总和:37375384594432338327-----------------------------------------------------------------------------统计花了将近6秒。$scc─────────────────────────────────────────────────────────────────────────────LanguageFilesLinesCodeCommentsBlanksComplexity────────────────────────────────────────────────────────────────────────────JavaScript2523298987207834633562779733769JSON419318493166001890Markdown37546820326630141570License27562795081011980Go2002797220776224349534447HTML15415617145257910130YAML51130312470560CSS448463695229712140PlainText3459457559439401810TypeScriptTypings177413673403427SVG15279279000XML1014167905161100Makefile6143954446gitignore564453160Batch470422265Shell3704714913CoffeeScript321010Patch2152714300970SQL29218470740Nix12019010Zsh12561540Fish1101720Dockerfile1105140BASH12761740────────────────────────────────────────────────────────────────────────────合计41471037190919112668945118438267─────────────────────────────────────────────────────────────────────────────预计开发成本$34,924,659EstimatedScheduleEffort59.194452monthsEstimatedPeopleRequired69.888518────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────scc速度很快,几乎眨眼间完成这两个工具的功能似的,但也会有一个不同之处。但是,scc快得多。毫无疑问,大家应该更喜欢Go语言实现的scc。scc,又称Sloc、Cloc、Code,取这三个词的首字母:SCC。scc是一个非常快速和准确的代码计数器,具有复杂性计算和COCOMO估计,用纯Go编写。scc允许查看代码、行数、注释、文件等使用的每种编程语言。这是一个非常快速且有用的工具。scc支持大多数语言。通过scc--languages查看支持的语言。目前有201种语言。在首届GopherConAU上,scc作者boyter就scc的设计与实现发表了演讲。这里有一个PPT:https://boyter.org/static/gophercon-syd-presentation/,还有一个视频:https://www.youtube.com/watch?v=jd-sjoy3GZo。关于scc的更多信息,可以访问项目主页:https://github.com/boyter/scc。如果你想统计你在2021年写了多少代码,你可能无法简单地运行scc,因为大部分代码都不是你一个人写的,你可能需要借助git来辅助。有兴趣的朋友可以研究一下。参考资料[1]sloccount:https://dwheeler.com/sloccount/本文转载自微信公众号「polarisxu」,可通过以下二维码关注。转载本文请联系polarisxu公众号。