前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第一次给知名项目贡献代码,有点紧张

第一次给知名项目贡献代码,有点紧张

原创
作者头像
程序员鱼皮
发布2021-04-06 18:44:39
1K1
发布2021-04-06 18:44:39
举报
文章被收录于专栏:鱼皮客栈

大家好,我是鱼皮的小老弟阿巴,大家也可以叫我小阿巴。

我也对编程非常感兴趣,但还是小白一枚。这几天放假来哥哥家玩,本来想着鱼皮哥哥学计算机、设备多,会带我打打游戏什么的。结果没想到刚到他家,就问我编程学的怎么样了,甚至还想拉着我敲几天代码。

第一天,鱼皮哥哥就问我知不知道一个叫 GitHub 的网站。这我怎么会不知道,世界上最大的代码开源平台呗,可以在上面找到很多对学编程有帮助的项目。他之前写过一篇怎么找优质项目的文章:【硬核干货】如何高效找到优质编程项目?,我还是认真看了的。

然后他接着问我有没有参与过开源项目、贡献代码什么的。这我还真没试过,虽然一直在 GitHub 上看项目,但从来没有想过自己参与项目。一方面是担心自己实力不够,觉得能给开源项目贡献代码的都是大神;另一方面是不知道如何给项目贡献代码、从何处下手。

没想到鱼皮邪魅一笑,说:“其实贡献代码没那么难,让我来教你吧!”

完了,这下整个假期估计就只能敲代码了。

不过没想到,在鱼皮哥哥的指导下,很快我就学会了如何给开源项目贡献代码,还实际操作了一波!

我做了些笔记,下面分享给大家,帮助每位学编程的同学参与到开源项目中。

第一次参与开源

相信很多同学和我一样,对参与开源项目望而却步,主要是因为这两点:

  1. 不知道如何贡献代码
  2. 找不到合适的项目参与,不知道贡献哪些代码

下面推荐两个方法,分别解决这两个问题。

如何贡献代码

其实,GitHub 上就有一个现成的教程项目 first-contributions,为初学者带来一个简单的方法来学习及参与开源项目。

如该项目作者所说,没有什么学习方法能比实际动手做更好,因此,这个项目不是简单的图文教程、更没有繁杂的理论知识,更像是一本有趣的说明书,一步步引导你去使用 GitHub 的 Fork、Clone、分支、代码提交、代码发布、提交 Pull Request(合并请求)等完整的项目代码提交流程。

fork 仓库
fork 仓库

作者非常慷慨,允许大家直接拿这个教程项目来实战学习,并接受大家的合并请求。由于这个项目的 star 数也接近 2 万,所以只要你跟着教程给这个项目做贡献,也可以说是参与了一个知名项目啦!

发起合并请求
发起合并请求

找到自己能贡献的代码

学会了贡献代码的操作方法后,到哪儿去找适合自己的项目去参与和贡献呢?

建议首选自己熟悉的项目,在熟悉的项目中再优先选择自己用的比较多的功能,先试着贡献一些小的修改。通常先从修复一些文档的 bug、或者补充文档和代码注释开始。比如现在很多 GitHub 的成熟项目发展飞速,但可能成员都去开发新功能了,导致文档年久失修,如果你正好用到了这个项目,发现了文档的错误,不妨试着修复一下,虽然工作不大,但相信会给你带来很大的成就感。

很多项目的文档都有编辑链接
很多项目的文档都有编辑链接

通过阅读和修改文档,你可以进一步熟悉项目,了解他的设计思想和技术架构。平时如果在使用项目功能时遇到 bug,可以 提个 issues(不是只有提交代码有价值,提出问题也是在做贡献),然后可以试着自己修复这个小 bug,有些可能只需要改几行代码,但影响会很大,成功修复也能得到很多同学的认可,从而激励你进一步优化和完善这个功能,提升自己的水平。

哪怕自己没有遇到什么项目的 bug,也可以直接到项目的 issues 页面 查看其它同学遇到的问题,很多问题其实并不麻烦,只是官方无暇去解决,这往往就是我们参加开源的最佳时机。

比如阿里的 Ant Design 项目,还有近 600 个待解决的问题!

这么多的 issues,怎么选择适合初学者解决的问题呢

其实非常简单,直接访问 github.com/<owner>/<repository>/contribute 地址,就能够查找出指定仓库中适于初学者参与的议题。

比如 Ant Design 项目,就访问地址:https://github.com/ant-design/ant-design/contribute,进入到仓库贡献页,其实就是在仓库后面加个 contribute 而已。

然后你就能看到很多打上了 good first issue 标签、适合初学者解决的问题,以及一份仓库贡献指南:

仓库贡献页面
仓库贡献页面

这些问题通常解决难度不大、成本不高,而且非常具有学习意义。

试着解决 issue
试着解决 issue

强烈建议先 阅读贡献指南,然后学习下别人解决问题的思路,再自己动手尝试!

当你解决的问题越来越多,或者对项目足够熟悉后,你可以给整个项目开发新功能,甚至加入项目的核心团队!当然,这是后话,从编程小白逆袭为开源大佬,不敲个几十万行代码,我觉得不行。


好了,就分享到这里。

虽然这个假期被鱼皮哥哥拉去敲了几天代码,没有打成游戏,但还是 点个赞 感谢他吧,以后多给开源项目贡献代码,俺的水平不得起飞了啊!

发现项目:https://www.code-nav.cn/rd/?rid=28ee4e3e604f7ce60ad166027f272d9e

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一次参与开源
    • 如何贡献代码
      • 找到自己能贡献的代码
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档