审查 Pull Request 的三个要素
Pull Request 是向软件项目提交贡献的一种方法。维护者或贡献者会审查这些 Pull Request,以讨论提议的更改,并帮助确保更改符合项目指南和质量标准。在本演讲中,我们将了解审查 Pull Request 的三个要素。
- GitHub 上代码审查的机制。
- 代码审查的社会方面以及如何有效地提供反馈。
- 审查 Pull Request 的技术方面。
此演示的幻灯片 可供使用。
提纲
- 00:00:00 Reshama 介绍 Data Umbrella
- 00:05:20 Thomas 开始演讲
- 00:06:35 术语:Pull Request、审阅者、贡献者、合并
- 00:07:12 第 1 部分:代码审查的机制。为什么进行代码审查?
- 00:19:10 在 GitHub 中浏览代码
- 00:21:50 shift+click:突出显示多行
- 00:22:18 GitHub b:blame,显示代码的最后贡献者
- 00:23:12 机制概述
- 00:24:12 问:建议如何合并到代码中?如何同步本地仓库?
- 00:27:02 第 2 部分:审查 Pull Request 的社会方面
- 00:27:58 提供反馈的技巧 1:询问,不要告知
- 00:28:46 提供反馈的技巧 2:提供替代实现
- 00:29:56 提供反馈的技巧 3:解释为什么代码应该更改
- 00:39:56 DRY:不要重复自己;重构,在多个地方具有公共逻辑,重写代码以实现相同的功能,但这使代码更易于维护
- 00:31:50 避免使用贬义词
- 00:32:32 技巧 4:谦虚,假设每个人都很聪明,并且意图良好
- 00:33:15 技巧 5:要求澄清
- 00:34:11 技巧 6:说明哪些想法你没有强烈的意见
- 00:35:02 技巧 7:尝试留下积极的评论
- 00:35:33 技巧 8:感谢贡献者的工作
- 00:35:56 一般社会方面
- 00:36:37 分歧
- 00:37:39 同步交流(交谈、做笔记、用笔记更新 PR 以记录讨论)
- 00:38:45 社会方面概述
- 00:39:05 第 3 部分:技术方面
- 00:39:52 演示:PR 的呈现方式?PR 的描述
- 00:42:00 是否更改了无关的代码?
- 00:42:55 PR 是否易于审查?
- 00:44:45 工程、技术方面
- 00:44:58 每个更改都应该是故意的
- 00:45:10 提供简化或改进代码的方法
- 00:46:20 更改是否保持向后兼容性
- 00:48:42 性能优化,需要基准测试
- 00:49:32 是否有文档?
- 00:51:05 代码注释
- 00:52:15 测试!(是否有测试,以及更多)
- 00:54:08 CI 测试失败意味着什么?
- 00:55:42 犯错是可以的
- 00:56:53 问答
关于演讲者
Thomas J. Fan 是 scikit-learn 的维护者,scikit-learn 是一个用于 Python 的开源机器学习库。他通过设计项目的路线图、对贡献者提供反馈以及实现新功能来领导 scikit-learn 项目。Fan 也是 skorch 的维护者,skorch 是一个与 scikit-learn 兼容的库,它包装了 PyTorch。他拥有纽约大学数学硕士学位和石溪大学物理学硕士学位。在学术研究期间,Fan 研究了量子计算和凝聚态物理学。