怎样参与到全世界优秀的开源项目中?

怎样参与到全世界优秀的开源项目中?

在如今的软件设计,架构及开发中,开源扮演着越来越重要的角色。

从SSM、ROR 到OpenJDK,Kafka, Tenserflow,甚至就连火遍全球,日行千里的比特币 Bitcoin 也是开源产品。这种开源产品促进了更多的币的出现与链的产生,当然还有习惯到忽视他是开源产品的 Linux。

  • 人们平时访问的各种网站的时候会无形中使用到开源,背后可能在使用Apache、Nginx这类的 Web Server,如果升级到https,那使用的SSL可能也是基于开源的产品,

  • 每一次使用安卓手机的时候,我们都在使用开源产品

  • 你毫不犹豫的,顺手使用了SSM、ROR 的时候

  • 为了整理多年的照片,为了按人物归类,使用PaddlePaddle、Tensorflow的时候

  • 你买了台电脑,上面预装了 Linux

  • 你在某些App中重要场景下通过眨眼认证「你就是你」的时候… 

可以不夸张的说,开源产品一直影响着人们的「生产与生活」。

十年前,随着Github的发布,使用Git 进行版本管理越来越流行。 同时我们也可以更方便的通过Github参与到开源项目中。

使用开源,同时可以将自己的代码,想法回馈给开源社区…

所以十年间,无数优秀的开源项目通过Github进行项目托管,像 Ruby on Rails (ROR), 像Spring ,许多项目都由SVN迁移到Git。这个过程中,像SourceForge, Google Code了越来越没落了。

当然,交给Github托管 ,这样不仅使用到 Git 的特性,同时对于即使身处不同城市的开发者都可以参与其中。同时方便用户的参与,提交Issue,发起 Pull Request。

这样「众人拾柴火焰高」,众多人贡献的项目,发展的更多,也发展的更好。而且,用户在使用开源产品时,也大都会考虑该产品最近一次

更新是什么时候。对于几年不更新的产品,用起来是会有不小的些顾虑的。

什么是开源

说了半天开源产品如何重要,开源怎样影响我们的生活。 开源到底是什么

对于开源,最基础最直接的感受,一定是开放源码,就是可以在任何时候,看到详细的「源代码」,毕竟「源码面前,了无秘密」。

有了源码,就可以了解其内部机制,使用过程中出现问题时,可以随时上手自行分析解决,不必等待官方缓慢的动作。

当然,这只是第一层意义。开源,更重要的意义在于,围绕产品的社区发展,可以将众人的力量回馈给开源产品。众人的参与,提出意见、想法与贡献等这个良性的循环机制。

众多的人都在使用产品,过程中遇到的问题,解决问题的代码,可以再提交回产品中。一些用户在真实的项目使用中,又由于不同的场景,可以提供不同的需求,甚至可以发现在不同环境中出现的各种问题。所以,是开源使得更多的人可以参与到产品开发中,贡献力量。

这种「人人为我,我为人人」的劲头,更大的促进了社区的发展。

比如影响世界的 Linux,也是在Linus 开源后吸引到全世界的高手参与其中。

怎样参与开源项目

看了前面的内容,你可能会说对于这些开源的牛X项目,我真是「老虎吃天,不知从哪下口」,不知道从哪参与,我也没法贡献。

其实可以这样考虑:

我们平时开发中要高频使用的框架,组件的功能,如果发现具体的 Bug,就可以 fix 之后提交给官方。说不定你的改动就被合并到代码中,影响世界上千万开发者了。

除了代码,项目文档也是一个很重要的部分,我们接触一个新的产品时,都是从其文档开始「QuickStart」跟进从生手到进阶。

所以,看到文档中的错误内容,或者有些内容官方在每次产品发布后,文档的变更遗漏了,这些都是我们可以参与其中的地方。

前面我们说开源项目对于世界的影响。而且随着 Github的流行,参与到一个开源项目中也变的越来越容易。具体怎么参与呢?

以我前面文章里提到的 Tomcat 管理与监控工具 psi-probe( 一款功能强大的Tomcat 管理监控工具 )为例。

第一步:fork

首先在  Github上找到要参与的项目,点击右上方的 「 Fork 」。

怎样参与到全世界优秀的开源项目中?

此时,你会看到像我们常使用的扫描仪一样,当前项目的「高清扫描版」不久就会出现在你的repo中。

怎样参与到全世界优秀的开源项目中?

不久, Fork 成功后,这个项目会显示在你个人的 Repository 中。同时显示从哪Fork出来的。可以方便的进行源的跟踪。

怎样参与到全世界优秀的开源项目中?

Fork 之后,根据使用的情况,可以对其中你认为需要改进的地方提交代码,参与项目。

第二步:修改代码提交

记住,现在的这个项目,是「 」的项目。位于你的Repo中。所有的 git 操作,需要先以此这基准,git clone 到本地,进行操作,然后再commit 到「你」的仓库中。

对于代码的修改,可能需要熟悉具体的内部工作原理。也可以像我们前面介绍,对于其文档进行参与贡献。

所有的修改,变更都已经提交到 git ,同时 push 到远程分支时,你的这些修改的代码在 Github上你的仓库里也就都能看到了。

第三步: 创建 Pull request

此时,在你仓库中点击「 Pull Request 」,会显示对于「你这个项目」,别人发起的 Pull Request。我们现在是想向「 源仓库 」提交代码,所以再点击右上方绿色的「 New pull request 」按钮。

怎样参与到全世界优秀的开源项目中?

此时,可以选择要将「你的仓库」哪个分支,提交到「源仓库」的哪个分支上。此时会显示变更的文件内容,提交人等。点击绿色的「 Create pull request 」按钮,输入信息,完成创建 PR。

怎样参与到全世界优秀的开源项目中?

到此为止,「 源仓库 」的 Pull request 列表中,会显示我们刚刚发起的PR,状态是 Open,刚开始会进行一次「代码检查」与「持续集成」。

怎样参与到全世界优秀的开源项目中?

等待上述「代码检查」与「持续集成」完成,没有问题时,图标会变成绿色。此时,「源仓库」的维护人,Commiter,就可以将你提交的内容合并到源分支中。

怎样参与到全世界优秀的开源项目中?

但是一般来说,需要我们描述本次提交变更的内容,主要实现什么功能,可以同时再提交一些截图之类的。

第四步(Optional): 增加描述等更详细的信息

怎样参与到全世界优秀的开源项目中?

然后我们根据要求,再在PR中增加详细描述,截图等内容,再次等待 review。

怎样参与到全世界优秀的开源项目中?

怎样参与到全世界优秀的开源项目中?

等待 Commiter review 没问题之后,会将本次内容,合并到源仓库的指定分支中,此时PR中会显示xxx merge commit 到什么分支,同时PR的状态是「Closed」。此时,本次参与已经完成。

怎样参与到全世界优秀的开源项目中?

我们也会出现在该仓库的 「 contributors 」列表中。是不是很Cool?

总结下,参与一个开源项目的过程:

  1. fork 一个项目

  2. 提交修改与变更

  3. 向源库发起 Pull Request

  4. 等待 Code Review,如果需要,再补充详细的内容

  5. 等待代码合并到源库

  6. 完成提交

找到自己感兴趣,同时有能力参与的项目,开启你的开源旅程吧。

相关阅读:

一款功能强大的Tomcat 管理监控工具

分享的意义

从源代码构建Tomcat的方式

觉得本文对你有帮助?请分享给更多人 支持一下吧,谢谢

关注『  Tomcat那些事儿    ,发现更多精彩文章!了解各种常见问题背后的原理与答案。深入源码,分析细节,内容原创,欢迎关注。

怎样参与到全世界优秀的开源项目中?

加入知识星球,一起进步

怎样参与到全世界优秀的开源项目中?

☆★☆更多精彩内容 ☆★☆

怎样参与到全世界优秀的开源项目中?

怎样回答技术面试题?

怎样参与到全世界优秀的开源项目中?

Tomcat 的JVM性能调优

一台机器上安装多个Tomcat 的原理(回复001)

监控Tomcat中的各种数据 (回复002)

启动Tomcat的安全机制(回复003)

乱码问题的原理及解决方式(回复007)

Tomcat 日志工作原理及配置(回复011)

web.xml 解析实现(回复 012)

线程池的原理( 回复 014)

Tomcat 的集群搭建原理与实现 (回复 015)

类加载器的原理 (回复 016)

类找不到等问题 (回复 017)

代码的热替换实现(回复 018)

Tomcat 进程自动退出问题 (回复 019)

为什么总是返回404? (回复 020)

PS: 对于一些 Tomcat常见问 题,在公众号的【 常见问题 】菜单中,有需要的朋友欢迎关注查看。

怎样参与到全世界优秀的开源项目中?

原文 

https://mp.weixin.qq.com/s?__biz=MzI3MTEwODc5Ng==&mid=2650859642&idx=1&sn=9b2c2dc61686c580f8af1dc8fc197612&chksm=f13297a9c6451ebf083e5335eb2ae4eba0f8c80bc8db420ce7e0aac90eaeb06152f589dcaf6e

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 怎样参与到全世界优秀的开源项目中?

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址