同事又在偷懒刷 V2EX, 看看他在 git 项目中的代码贡献量 ( Python 小脚本)

2017-10-22 22:28:42 +08:00
 daya0576

具体使用方法见 Github 主页:

https://github.com/daya0576/git-code-contribution-analysis/


在大家的公司里是如何评估程序员的绩效的呢?

因为这个脚本只是用来分析代码贡献量, 而不是真实的项目贡献.
毕竟有个东西叫做代码质量, 但数据量大了, 还是能反映一些事实的.
你们想到更好的指标(或算法)来分析 git 数据, 计算 contribution 吗?


效果图:


Features:

  1. 快 (2500 个 commits 的项目用时, 用时 1.1s, 和 gitinspector 相比快了 20 倍.)
  2. 统计一个用户总共的 commits, insertion, deletion, 改动总比重.
  3. 合并多个用户(不同用户名)--> 同一个用户名.
  4. 支持按列排序.

TODO

  1. 导出其他格式: html, cvs, excel, json
  2. 多个 repo, 合并分析
  3. 兼容 Python2
  4. 其他指标, 算法, 更好地分析项目贡献, 而不仅仅是代码量的贡献.
  5. 进度条
  6. 将配置(env.py)放到参数中
  7. git log 中 limitation 能做到的都能加上, e.g. 时间范围等等
  8. ...
7782 次点击
所在节点    程序员
26 条回复
zts1993
2017-10-22 22:55:42 +08:00
这个和导出加班时间有着异曲同工之妙~
mentalkiller
2017-10-22 22:56:30 +08:00
@zts1993 #1 +1
brickyang
2017-10-22 23:05:08 +08:00
那个 daya0576 是领导吗?主要工作是删了他看不顺眼的代码让你们重写?
mengzhuo
2017-10-22 23:20:12 +08:00
行数计算,分析指标,在程序员这里毫无意义

一个初级程序员可以导入第三方模块来伪造贡献
而一个高级程序可能为了一个 bug 找半天,最后一周只改一行核心代码


有种就分析写代码所需的难度。
freestyle
2017-10-22 23:36:44 +08:00
建议 REPO 可以从环境变量里取 改文件太麻烦了.....
fy
2017-10-22 23:58:22 +08:00
@brickyang #3 提醒一下,你看看楼主 ID
daya0576
2017-10-23 00:07:58 +08:00
@zts1993
是其实都完全不能体现程序员真正的 contribution
对吗
daya0576
2017-10-23 00:09:47 +08:00
@brickyang 不是的... 你观察的这个点还是挺有趣的.
rogwan
2017-10-23 00:12:04 +08:00
没有万全之法,还是谷歌那种 OKR 管理模式,效果好些吧
daya0576
2017-10-23 00:12:26 +08:00
@mengzhuo 是滴, 所以 TODO 里有: 其他指标, 算法, 更好地分析项目贡献, 而不仅仅是代码量的贡献.

统计的只不过是代码量的贡献, 我们都知道这也一个人对项目的贡献量关系不大.
但我在想, 能不能从这些数据中, 挖掘出一些有用的信息.

不然只能靠人来评估人了.
daya0576
2017-10-23 00:18:11 +08:00
@freestyle 遵命, 简单改好了. 还是太懒了.
daya0576
2017-10-23 00:21:59 +08:00
@rogwan 是滴.
就像 leader 分配给人具体目标, 然后评估完成结果, 比较科学一点.
qian19876025
2017-10-23 00:27:21 +08:00
看不惯你把人开了就是了呗 你来这上面抱怨 目的为何 找安慰? 要骂街 要杀一儆百 ? 还是显示自己能耐 你要开就开别 BB
brickyang
2017-10-23 00:34:06 +08:00
@fy 怪不得…果然是领导
writer15
2017-10-23 00:43:34 +08:00
@fy 233333
daya0576
2017-10-23 00:51:21 +08:00
@qian19876025 ??? 我只是个小罗罗.

不懂你的点...
j2gg
2017-10-23 01:18:17 +08:00
167 万行,770 次提交,每次提交 2000 行? 我觉得我们写的不是同一种语言,真的
beimenjun
2017-10-23 01:34:41 +08:00
V2EX 这种没法自行删帖编辑时间窗口又很小的地方,发帖还是慎重些吧。如果你在 GitHub 或者 CSDN 或者自己的 blog 写,就算被转到这里也不会有啥问题,但是跑到 V 这边对着正在刷 V 的其他人发一个帖子,也不知道是不是开玩笑似的在标题里一副要对刷 V 的同事进行制裁的样子,个人觉得你被怼全然不冤枉。

所以平常就和大家常说,卿本佳人,奈何要当标题党呢。

=================

至于你说考评这回事,有技术工具当然不是坏事咯,反正聪明的管理者懂得技术工具的缺陷和管理团队的取舍,弱一些的管理者,工具有没有基本都一个样。至于什么文件修改比较频繁,什么人写的代码被删改严重这种东西,因为一直都在不大的 team 里,感觉似乎很多时候不需要工具 leader 也应该知道。

而且说句实话,一个家伙如果一直刷论坛,commit 记录都没啥,我觉得真到这一步,如果不是这个员工就要离职,那么我觉得团队问题蛮大了。
ryd994
2017-10-23 02:13:41 +08:00
每行只改一个字,可以刷出大量 insert/delete
建议每个 commit 只计算两者之差
lrh3321
2017-10-23 08:03:33 +08:00
@j2gg 新功能我都是在本地专门开一个分支出来搞,弄得差不多了再 rebase 到我的开发分支上当作一个提交,提交太多了以后看 log 好烦啊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/399776

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX