关于Pull Request的十个建议
2016-05-13 20:56
316 查看
Pull Request是Bitbucket、GitHub等源代码托管系统为了方便开发者之间协作而提供的一个功能,它提供了一个用户友好的Web界面来帮助审查人员进行代码审查。开发人员可以通过GitHub发出Pull Requests要求请求他人将程序拉下来进行代码审查。一个好的Pull Request不仅仅只是代码的事情,还牵涉到代码审查者对代码的审查,所以开发者不仅要写出好的代码,还必须迎合审查者的审查工作,才能给使得自己贡献的代码顺利通过审查并合并到master分支。现对丹麦的程序员、软件架构师、独立顾问Mark
Seemann在自己博客中发布的一篇题为《关于Pull Request的十个建议》的文章进行一个全面的整理,以供读者阅读和参考。具体内容如下:
Seemann在自己博客中发布的一篇题为《关于Pull Request的十个建议》的文章进行一个全面的整理,以供读者阅读和参考。具体内容如下:
1. 进行较小的Pull Request
一个小且集中的Pull Request会使得提交的代码更加容易通过审核。据Mark Seemann根据自己的经验透漏,对提交代码进行审查所花费的时间是随着代码大小呈指数增长,而非线性增长;Pull Request多大才合适与Pull Request做了什么相关,最好少于12个文件的改变。如果Pull Request非常大,审查者就需要安排连续、相对比较长的时间进行审查,就会造成审查过程的延迟。2. 每个Pull Request只做一件事
就如软件设计模式中的单一责任原则所指:一个类只负责一个功能领域中的相应职责,因此一个Pull Request也应只关注一件事情。如果一次Pull Request做了多件事情的话,将会增加审查过程的延迟、审查被拒绝的可能性。3. 注意代码行的字数,最好少于80个字
代码审查者会使用不同的审查工具来审查提交的代码,并且GitHub和Stash还提供了不同形式的视图,这样就使得代码审查者能通过不同视图非常方便来审查用户的提交。如果代码行比较宽的话,审查者就不能在一个屏幕或者半个屏幕中来阅读代码,不得不拖动滚动条来阅读代码。为了使得代码比较容易审查,每行代码最好少于80个字符。4. 避免重新格式化代码
就算自己觉得应该改变当前代码的格式以适合自己的风格,但是请不要这么做。在源代码上,用户对每个字节的改变将会在不同的审查视图显示出来。有些审查者会选择忽略空格改变,但是有些审查者会审查这些代码,对这些格式化引起的代码审查属于不必要的审查。如果真需要解决空格问题的话,就需要在其他文件里移动代码、改变格式或者对代码做其他样式改变,并在Pull Request注释中给出相应的说明。5. 确保代码能够编译通过
在提交Pull Request时,应该首先在自己的电脑上进行编译构建。在编译构建过程中,务必注意编译过程出现的警告,要把警告当作错误来对待,这些警告可能不会阻止编译,就有可能被忽略。然而,当用户Pull Request操作引起了很多编译警告的话,代码审查者就有可能拒绝对应的提交。6. 确保提交的代码能够通过所有测试
即使问题代码已经做了自动化测试,但是在提交Pull Request时,也要务必保证针对代码的所有测试都必须通过。7. 添加测试
为代码建立测试规则,即使出现问题的代码已经做过了自动化测试,最好也要为自己提交的代码也做下测试。8.记录下自己提交的原因
利用文档对代码进行注释、对自己的代码直接进行注释、利用版本控制器提供的提交信息功能备注信息、利用Pull Request 管理系统(如GItHub或者Stash)添加自定义的Pull Request注释信息。9. 编写符合编码规范的代码
按照代码正确性规则编写代码,并附上有效的代码注释、提交信息、Pull Request信息等。10. 避免颠簸
不同审查者对Pull Request有可能具有不同的观点,这就会导致颠簸的情况,就需要用户移除冲突的提交和推送修改的分支,并备注有效的信息。相关文章推荐
- 查看github pages文档的方式
- 使用BAE的基于Web.py的简单博客程序
- 两分钟学会如何在github托管代码
- Android自定义View实现仿GitHub的提交活跃表格
- github配置使用指南
- github版本库使用详细图文教程(命令行及图形界面版)
- python使用心得之获得github代码库列表
- C语言实现的轻量级brainfuck语言解释器
- My Machine Learning
- 机器学习---学习首页 3ff0
- 利用GitHook构建持续交付和部署
- Android projects on Github
- git 提交步骤记录(oschina&github)
- github第三方 ios客户端比较推荐:iOctocat? CodeHub?NapCat?
- 本人的一些有用的东西的汇总
- GitHub当道,菜鸟也为Git疯狂
- Git LFS(Large File Storage)