V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
daya0576
V2EX  ›  程序员

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

  •  
  •   daya0576 · 2017-10-22 22:28:42 +08:00 · 7732 次点击
    这是一个创建于 2571 天前的主题,其中的信息可能已经有所发展或是发生改变。

    具体使用方法见 Github 主页:

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


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

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


    效果图:

    http://opetwnn9x.bkt.clouddn.com/git_contribution/Jietu20171022-210926.jpg


    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. ...
    第 1 条附言  ·  2017-10-23 01:06:20 +08:00

    标题是开玩笑的.
    这个脚本只不过是个小玩具, 写着好玩罢了, 并没有针对谁....

    代码贡献量 != 项目真实贡献量
    但我的想法是: 能不能从无意义的但真实数据中去挖掘一些有趣有用的信息.

    比如:
    insertion / deletion
    某个人写的代码被删的概率.
    被修改频率最高的文件
    等等

    zts1993
        1
    zts1993  
       2017-10-22 22:55:42 +08:00
    这个和导出加班时间有着异曲同工之妙~
    mentalkiller
        2
    mentalkiller  
       2017-10-22 22:56:30 +08:00
    @zts1993 #1 +1
    brickyang
        3
    brickyang  
       2017-10-22 23:05:08 +08:00
    那个 daya0576 是领导吗?主要工作是删了他看不顺眼的代码让你们重写?
    mengzhuo
        4
    mengzhuo  
       2017-10-22 23:20:12 +08:00   ❤️ 2
    行数计算,分析指标,在程序员这里毫无意义

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


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

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

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

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

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

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

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

    而且说句实话,一个家伙如果一直刷论坛,commit 记录都没啥,我觉得真到这一步,如果不是这个员工就要离职,那么我觉得团队问题蛮大了。
    ryd994
        19
    ryd994  
       2017-10-23 02:13:41 +08:00 via Android
    每行只改一个字,可以刷出大量 insert/delete
    建议每个 commit 只计算两者之差
    lrh3321
        20
    lrh3321  
       2017-10-23 08:03:33 +08:00
    @j2gg 新功能我都是在本地专门开一个分支出来搞,弄得差不多了再 rebase 到我的开发分支上当作一个提交,提交太多了以后看 log 好烦啊。
    daya0576
        21
    daya0576  
    OP
       2017-10-23 09:11:11 +08:00 via iPad
    @beimenjun 好吧。 学到了。
    我写的刷 v2ex, 意思是开玩笑的。
    现实中其实这种同事, 以后不标题党了。
    zts1993
        22
    zts1993  
       2017-10-23 09:27:50 +08:00   ❤️ 1
    @daya0576 #7 代码贡献 不等于 贡献 , 加班时间 不等于 工作时间 ~~~~
    sucaihuo
        23
    sucaihuo  
       2017-10-23 09:43:31 +08:00
    有好源码可以分享到素材火,赚零花钱 http://www.sucaihuo.com/
    ericgui
        24
    ericgui  
       2017-10-23 11:32:01 +08:00
    @fy 你意思是,说,他自己统计了,自己排第二,很靠前,所以才出来 show,要是很靠后,他就不写这个轮子了 哈哈
    fy
        25
    fy  
       2017-10-23 11:47:27 +08:00
    @ericgui #24 不我只是回复 3L
    windflyme5
        26
    windflyme5  
       2017-10-24 18:31:35 +08:00
    散了吧, 楼主凉了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1004 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 21:02 · PVG 05:02 · LAX 13:02 · JFK 16:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.