(TODO)随机CodeReview机制
思考:这种方式,评审人员看到的是一个片段,没有上下文和业务介绍,会不会效果很有限?
FB的随机CodeReview
代码实现
技术选型
考虑到这是一个简单的偏流程处理的工具,因此首选的是脚本语言,比如Python、PHP、Node。
PHP在公司已经逐渐被废弃了,用Node写这个对我的提升也不大,无非是再次搬砖,因此最终决定还是用Python。
实现细节
数据结构
git
git log的参数,可以参考这个博客:https://blog.csdn.net/helloxiaozhe/article/details/80563427
根据项目的git地址,获取指定时间区间的提交信息(提交人员、代码内容、代码行数)
1 | |
显示每个文件的变更类型(新增、删除、修改等):
1 | |
显示变更的行数:
1 | |
根据commit ID,获取具体的代码变更信息:
1 | |
不过如何获取颜色信息呢?我观察到每行第一个字符就是变更类型(+表示新增,-表示删除),可以通过这个来区分颜色。