> 猜猜写了多少行?都写了哪些语言呢?
大家好,我是鱼皮。
时间过得真是太快了,又到月底了。对于程序员来说,总结还是挺重要的,我也一直保持着一个习惯,就是每个月末都要看一下自己这个月的代码统计情况,比如写了多少行代码、写了哪些语言的代码、占比是多少等等。
接下来就带大家看一看咯~
### 本月不摸鱼情况
首先,代码统计肯定不是我自己来做的,总不可能一行行代码去数、再去分类吧!所以,我一般直接看公司提供的代码提交报告,根据你每个月的代码 git 提交数,自动统计生成。
比如下面这个代码提交语言饼图:
![本月代码提交语言](https://qiniuyun.code-nav.cn/QQ20210530-114745@2x.png)
从饼图中,就能看出我这个月写了 23.58 % 的 Java、写了 30 % 左右的前端(TypeScript + JavaScript + CSS)、写了 12.67 % 的 Markdown、还有 30 % 左右的其他语言。
等等,Others 是其他我能理解,这个 UNKNOWN 是什么鬼?!我就当是系统的 Bug 了吧哈哈。
![](https://qiniuyun.code-nav.cn/image-20210530181051582.png)
那大家是否好奇这其他语言都有什么呢?
我举一些例子,比如 Java 和前端项目的一些配置和数据交换文件,比如 xml、yaml、yml、properties、conf、 json、proto 等。还有一些脚本文件,像 bash 脚本、bat 脚本、SQL 脚本等。还有一些工程化的文件,比如 gradle 项目管理,以及自动构建项目用到的 jenkinsfile 等。
之前有小伙伴质疑我的工作不是全栈(啥都干),这回可以相信了吧!
![](https://qiniuyun.code-nav.cn/image-20210530181124367.png)
不过,不是说只有全栈工程师才要写各种语言。要做一个完整的项目,不可能只局限于一个编程语言本身,相关的技术栈像上面提到的配置文件、数据交换文件、脚本、工程化文件等,其实是每个程序员都应该熟悉或了解的。只有这样,你才能算是一名工程师,而不是靠复制粘贴度日的码农。
哦对,好像我现在大部分代码也靠复制粘贴,我搁这儿打脸放鞭炮呢?
这个月我新写了 1.58 万行代码,平均每天 500 行,也不是很多。但是这个只会统计你最后通过提交的代码,也就是经过我优化后的,所以实际上每天估计也会写近千行代码吧。
![本月代码行数](https://qiniuyun.code-nav.cn/image-20210530171325585.png)
不过,关注代码行数也没太大的意义,自己看着爽就完事儿,也能侧面反映出我没怎么摸鱼哈哈!
### 意义何在?
看自己的代码统计有什么意义呢?对我来说至少有三点:
#### 1. 复盘
首先,帮我回顾这个月的工作和效率。
其实这半年来,大部分情况下我都是在做调研、技术选型和场景分析,除了这个月写的代码比较多之外,其他时间很少写代码。因此,当我意识到代码写的少了时,我会有意在工作之余去花更多的时间来做自己的项目,多写一些代码,不让自己生疏。
那这个月代码写的比较多了,我又会警醒自己不要只沉迷于写代码,成为了项目和老板的工具人。我会在之后有意让自己更多关注代码之外的东西,比如业务场景;还会思考写这么多代码来实现这个需求是否真的有意义,能否换一种方式。
另外不知道大家是否注意,Markdown 文档语言在我本月的代码中占比 12 % 左右,也意味着最近我写了不少文档,多写文档对项目来说是很有帮助的!
![](https://qiniuyun.code-nav.cn/image-20210530180638140.png)
#### 2. 未来
通过分析代码统计,可以确定我未来的重点学习方向,比如有个月我在做一个用 Java 实现的项目,写了 80 % 的 Java 代码,那我自然会把重心放在 Java 上,在工作之余去深入看一些 Java 的东西。
#### 3. 成就感
不要小瞧这一点,回顾自己写的代码数的确能帮助你收获成就感,就像是打怪升级一样,看看自己上个月刷了多少只怪、爆了多少装备,这个月才会更有动力去冲!
当然,代码写的多也不一定是好事,有些程序员老奸巨猾的,为了凑行数,特么的一行代码后面跟一个空行,一行代码写完的功能拆成十行来写!没必要没必要。
![](https://qiniuyun.code-nav.cn/image-20210530180507040.png)
### 如何统计?
看到这里,肯定有同学也想统计下自己写的代码行数,这里简单介绍几种方式。
#### 1. GitHub
如果使用 GitHub 来管理你的代码,可以进入 `insights` 面板,能够看到指定时期的提交数、文件修改数、代码新增和删除数。
![GitHub 统计分析](https://qiniuyun.code-nav.cn/image-20210530174916356.png)
#### 2. 编辑器插件
很多编辑器像 WebStorm、IDEA、VSCode 等,都提供了代码行统计插件,比如 JetBrains 全家桶通用的 `Statistic` 插件。
![代码统计插件](https://qiniuyun.code-nav.cn/image-20210530174554591.png)
安装之后,就能看到代码中各个语言的行数、占比等信息了。
![代码行统计](https://qiniuyun.code-nav.cn/image-20210530175250585.png)
#### 3. 工具
还有一些现成的代码统计工具,比如 `cloc` 。通过命令行使用,可以直接分析本地或者 GitHub 上的代码包。支持按语言分类统计代码空行、注释行、自然行数等,还能单独分析指定提交。
![cloc 工具分析](https://qiniuyun.code-nav.cn/image-20210530175859524.png)
#### 4. 硬核命令
如果你的 git 命令耍的很溜,也可以直接写命令来统计代码,根本不需要什么工具!
不过看这狗命令就知道,这种方式过于硬核:
```bash
git log --author="_your_name_" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
```
#### 5. 软件
也有一些现成的开发统计软件,比如 WakaTime,可以灵活配置自己的开发指标看板,记录自己的代码工作。
![](https://qiniuyun.code-nav.cn/image-20210604181140534.png)
---
好了,以上就是本期分享,原创不易,如果觉得文章不错,希望 **点赞** 支持下,给俺点创作动力。
最近还在开发我的 [编程导航](https://www.code-nav.cn)( https://www.code-nav.cn ),一个帮大家找编程资源的项目,欢迎使用!
![各种编程资源](https://qiniuyun.code-nav.cn/%E6%9C%8B%E5%8F%8B%E5%9C%88%E9%85%8D%E5%9B%BE-20210524231057095-20210604181247442.png)
**我是如何在大学期间通过自学,拿到腾讯、字节等大厂 offer 的,可以看这篇文章,不再迷茫!**
[我学计算机的四年,共勉!](https://t.1yb.co/q0mS)( https://t.1yb.co/q0mS )