0

自动化审核 pull request 需要做哪些工作?

 2 years ago
source link: https://zhuanlan.zhihu.com/p/407658757
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

自动化审核 pull request 需要做哪些工作?

problem solver

假设我们需要实现一个机器人,来替我们过 pull request,这个机器人需要做哪些工作?

1、所有权(强制性):这个 pull request 应该归我管吗?归我管的 pull request 都到我这里来了吗?

2、代码的分工:这份代码应该写在这个git仓库,或者这个目录,或者这个文件里吗?

3、代码的协作:是不是有重复的实现,需要复用已有的,或者抽取组件和方法吗?

4、兼容性:类型兼容性(单模块能编译通过),前后端网络请求的类型兼容性(分布式应用),数据和版本升级过程中的兼容性(多版本兼容性)?

5、数据转换(业务逻辑):同样的业务逻辑有n种等价写法,应该用这种写法吗?应该是推的模式,还是拉的模式?

6、安全:权限实现得对吗?是不是放得太宽了?所有的提权都是基于可信任凭据的吗?

7、数据一致性:幂等性和重试实现得对吗?是不是有数据不最终一致的风险?

8、I/O相关的性能:I/O操作的批量和缓存优化得对吗?是不是尽可能减少了I/O次数?

9、纯计算性能:数据是否有冗余?数据结构选择是否恰当?cpu指令是否充分利用?

如果你觉得自己来做这些审查太累了,或者觉得自己无法可靠胜任这项工作。就应该把自己的判断方法规则化固化下来,变成由自动审核机器人来完成。这样的审核机器人有没有呢?其实已经存在了,它们叫编译器静态类型检查,它们叫 linter。只是现有的审核机器人能胜任的任务还很少,需要继续扩充其能力。帮我们卡好 CI,看好门。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK