过来人告诉你:新手怎么玩转GitHub

Miracle
924
文章
42
评论
2018年12月26日00:05:09 评论 1668字阅读5分33秒

今天,我们要讨论的是Quora上的一个讨论帖:一个新手如何为GitHub上的开源项目做贡献?

GitHub上面有许多项目,很多初学者都想为一些项目作出贡献,于是不断在GitHub的搜索界面上搜索,希望找到一个能够贡献的项目,最后,绝大多数的人都放弃了,为什么呢?因为你找到的项目要么过于复杂,要么就是已经死了

对于初学者,建议你不要一开始就为GitHub上的项目做贡献,那只会让你感到挫败。下面具体告诉你为什么以及你应该怎么做?

1. 没有适合初学者的开源项目

事实上,GitHub上没有一个开源项目是真正为初学者准备的,大多数项目都是完整的,解决了某个特定的问题,并且设计的很安全和灵活

这意味着会有很多的代码,复杂的结构,这对初学者来说是有很大难度的,大部分初学者认为所有的代码都应该放在一个文件夹里,这样你就能一次性解决问题,但事实并非如此

如果你想为一个项目添加一个小特性,你需要了解整个项目/库/插件是如何运行的,它的逻辑流程,它如何输入/输出,否则,每次解决完一个小问题,立马就会有一个更大的问题等着你去解决

就拿我自己的开源项目jQuery AutoComplete,他只是一个小小的插件,只有1000行左右的代码,但也少有初学者能为它贡献代码。

2.你的补丁很可能不被接受

我们讨论的是“如何为GitHub上的项目作出贡献?”,但实际上,没人会告诉你要怎么做。

一个GitHub项目可以有成千上万个未处理的pull requests,大多数项目维护者并不是很乐意让一个新人把代码添加到他们的代码库,所以你的pull requests很可能没人搭理你。

过来人告诉你:新手怎么玩转GitHub

想象一下,当你发现了一个项目问题,花费了大量的时间和精力去修复它,提交后却没人回复你,想想你浪费的那些时间和精力,一定会感到很无奈吧

3.参与一个完整的项目并不会帮助你学到很多东西

作为初学者,最大的乐趣在于你一次次的突破,看着自己的代码从100行到1000行,再到10000行......然后你发现自己再也不是一个初学者了。即便让你写出5000行代码,也不会像之前写500行代码那样绞尽脑汁。

当你为一个开源项目做贡献时,你并不会打着“我要学习”的称号,重写他们的整个代码库,但是,假如你从一开始就参与到项目中去,这样你就能够理解一个项目的整个生命周期:创意、原型、设计、实现等等。

我已经创建了20多个开源项目,我并不反对为开源项目做贡献,但是刚开始我认为你更应该做的是创建自己的项目,下面就是创建自己项目的流程:

i) 确定一个简单的问题

这个问题不仅是你需要解决的问题,也是很多人想要解决的问题,越多的人对它感兴趣的时候,你的项目越有可能成功。

它不必是一个完整的应用程序,可以只是一个小补丁,让你有一个学习GitHub的机会,就像学习编程一样,Git工作流程是需要花费一些时间和精力去适应

ii) 开始编写代码并推送到GitHub

请务必记住一点,你不仅是在学习编程,你也是在学习如何使用GitHub以及如何为开源项目做共享。熟悉工作流是重中之重,诸如创建分支、了解push、pull、 rollback等

过来人告诉你:新手怎么玩转GitHub

创建一个公共存储库,并编写Readme.md文件,它是指描述你的项目要做什么或关于什么的文件。然后为你的项目准备一份书面计划,让项目有一个清晰的路线图。这一步很关键,因为没有人关注你。如果你在乎自己的时间和精力,你就该知道你在做什么

iii) 测试、部署、修复bug、邀请朋友……

在你的项目(插件或者应用程序)传播之前测试一下,你可以进行功能测试或编写自动单元测试,对于是否应该在学习编程的时候,就开始编写单元测试,看法不一,所以这里你也可以忽略

接下去,就要考虑到用户问题,没有人会在成千上万的GitHub项目中发现你这个小插件的存在,你必须想办法把它送到用户眼前。

过来人告诉你:新手怎么玩转GitHub

然后你会发现自己写的全是Bug,怎么办呢?当然是请其他人和你一起为这个项目贡献代码,一开始,这可能很困难,但是一旦走过了这一步,这个项目就是一个成熟的项目

在这个基础上,你已经有了第一手经验,这时候,我完全鼓励你开始为其他人的项目作出贡献。

继续阅读
  • 版权声明: 发表于 2018年12月26日00:05:09
  • 转载注明:https://x1995.cn/3734.html
利用深度学习自动补全 Python 代码 干货教程

利用深度学习自动补全 Python 代码

代码补全功能在IDE里面十分常见,优秀的代码自动补全功能可以大大提升工作效率。不过, IDE 基本都使用搜索方法进行补全,在一些场景下效果不佳。今日,猿妹在GitHub上找到一个开源项目,使用深度学习...
分享8点超级有用的Python编程建议 干货教程

分享8点超级有用的Python编程建议

我们在用Python进行机器学习建模项目的时候,每个人都会有自己的一套项目文件管理的习惯,我自己也有一套方法,是自己曾经踩过的坑总结出来的,现在在这里分享一下给大家,希望多少有些地方可以给大家借鉴。 ...
一文读懂NFC 干货教程

一文读懂NFC

相信大家都知道NFC,如今几乎所有旗舰手机都支持这一功能,有了它,我们就可以用手机来乘坐公交地铁、用手机开门、用手机支付,那么你知道NFC到底是什么吗?IT之家现在给大家简单科普一下。 NFC全称为“...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: