改进GitHub工作流的15个建议

我已经有十多年的软件开发经验,参与过很多开源项目和非开源项目。在这些项目中,我们使用GitHub作为代码协作平台。在这十年中,根据项目的不同,我经历了各种开发流程。在这篇文章里,我将分享我认为最为高效和实用的开发流程,它可以被用在各种软件开发项目上,开发出高质量的软件。

高质量的软件有很多属性,比如健壮性、可测性、弹性、模块化、可维护性、可用性、安全性、高性能、可伸缩性等,还有其他很多属性视具体的项目而定。本文主要关注以下几点:

良好的文档:README、文档页面、变更日志。

良好的编码规范。

版本管理。

自动化测试:不需要太多,专注在功能性非回归测试就可以了。

开发者体验。

为了达成上述目标,我建议使用开源工具来协助和自动化大部分任务。如果你在开发开源项目,可以将代码托管在GitHub上。Git和GitHub已经彻底改变了开源项目的开发方式,Git成为版本管理事实上的标准,而GitHub成为代码协作的主要平台。

GitHub官方建议的开发流程叫作github flow,官网上提供了详细的文档https://guides.github.com/introduction/flow。大部分开源项目都遵循这一流程,然后加入一些细微的调整。

改进GitHub工作流的15个建议

GitHub工作流非常灵活,它没有规定如何发布版本和记录变更,没有规定如何合并PR(拉取请求),没有规定使用哪一种工具,没有规定代码提交标准,没有规定如何进行代码评审,一切都取决于开发者自己。不同的团队有不同的需求,所以并不存在标准的解决方案。

以下是根据我的经验总结出来的清单。我主要专注于JavaScript开发,所以我提到的很多工具都是JavaScript生态系统的一部分,不过同样的原则也适用于其他编程语言。

1.通过GitHub的项目功能给问题安排优先级和跟踪进度

2016年9月,GitHub引入了项目功能,让开发者可以创建看板风格的面板,用于管理、组织和跟踪工作内容。如果你在使用GitHub,我强烈建议使用这一个功能。更多的细节可以参看https://help.github.com/articles/tracking-the-progress-of-your-work-with-project-boards

2.使用标签给问题分类

GitHub提供了非常好用的过滤功能。如果你在开发开源项目,一定希望有人参与到你的项目里来,并为他们提供良好的开发体验。通过使用标签给问题分类,开发者可以更方便地查看问题列表,从而节省时间。

3.使用GitHub模板

使用问题模板和PR模板将给你带来很大好处,让开发者在提交bug和特性请求时使用标准模板可以让你获得足够的信息,以便在后续修复bug或开发新特性。

提交bug的通用指南

在提交bug之前确保已完成以下两个步骤:

确保你运行的是最新版本的代码。

通过搜索功能确保同样的bug之前没有被提交过。

bug报告应该包含如下信息:

概要:简单的问题描述。

重现步骤:你是如何发现这个bug的?如何重现?

预期行为:预期行为应该是怎样的?

实际行为:实际行为是怎样的?

引用:相关ticket或信息来源的链接。

如果可能,添加一些包含可视化元素的附件文档,比如截屏、视频或gif图片。

PR的通用指南

确保不存在要解决同样问题的PR。

通过问题跟踪器查找相关的问题。

讨论需要作出哪些变更。

让别人知道你在解决这个问题。

在branch上开发,而不是master。

提供有意义的PR描述。

遵循项目的提交规范。

写好你的PR描述。

在描述中加上问题链接。

4.使用命令行

控制台是我们的好朋友。从我的经验来看,在开发开源项目时,通过命令行来操作GitHub是最高效的一种方式。虽然有很多很好的GUI,但都没有命令行那么灵活。还有一些非常好用的命令行工具,也只有使用这些工具才能让开发者如虎添翼:

5.遵循严格的提交规范

定义清晰的提交规范,并严格遵循,以下是一些通用指南:

每一次修复作为单独的变更来提交。

提供有意义的提交信息。

在提交信息的第一行提供简短的描述(50到100个字符)。如果不明白为什么要这样做,看看gitk或git log --oneline命令的输出就知道了。

在消息体中包含问题的链接。

6.定义编码规范并配置预提交钩子

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12698.html