(TODO)随机CodeReview机制

思考:这种方式,评审人员看到的是一个片段,没有上下文和业务介绍,会不会效果很有限?

FB的随机CodeReview

代码实现

技术选型

考虑到这是一个简单的偏流程处理的工具,因此首选的是脚本语言,比如Python、PHP、Node。

PHP在公司已经逐渐被废弃了,用Node写这个对我的提升也不大,无非是再次搬砖,因此最终决定还是用Python。

实现细节

数据结构

git

git log的参数,可以参考这个博客:https://blog.csdn.net/helloxiaozhe/article/details/80563427

根据项目的git地址,获取指定时间区间的提交信息(提交人员、代码内容、代码行数)

1
git log --author="zhangphil"  --after="2018-05-21 00:00:00" --before="2018-05-25 23:59:59"

显示每个文件的变更类型(新增、删除、修改等):

1
git log --after="2021-01-14 00:00:00" --before="2021-01-14 23:59:59"   --name-status

显示变更的行数:

1
git log --after="2021-01-14 00:00:00" --before="2021-01-14 23:59:59"   --stat

根据commit ID,获取具体的代码变更信息:

1
git show a08d5ff6ffccc2ec103cf30ef0ff11e073d55e0d

不过如何获取颜色信息呢?我观察到每行第一个字符就是变更类型(+表示新增,-表示删除),可以通过这个来区分颜色。

JIRA