点击上方 蓝字关注我们
作者 | 钟嘉杰
编辑 | 胡志鹏
✎ 编 者 按
我是开源社区的新手,下面是我对开源的思考,以及我的开源入坑之路。如果你没有开源经验,想了解开源,想知道如何参与开源,或许我的经历能给你带来一点启发。
01
什么是开源
这里的开源特指开源软件。引用 维基百科 的定义,开源软件(英语:open source software,缩写:OSS)又称开放源代码软件,是一种源代码可以任意获取的计算机软件,这种软件的著作权持有人在软件协议的规定之下保留一部分权利并允许用户学习、修改以及以任何目的向任何人分发该软件。
02
开源社区的组成
你或许没有向开源社区提交过代码,但是你其实已经在开源社区中了。为什么这么说呢?如果你是后端工程师,你是否使用过 Spring,Flask,nodejs 等;如果你是前端工程师,你是否使用过 VUE,React 等?测试的小伙伴是否使用过 selenium?或者你是否也使用过 MySQL、Postgresql、Docker、kubernetes?这些都是开源软件,只要使用他们,你就是开源社区的用户,实际上就已经参与到开源社区之中。
开源社区主要的角色有:维护者、贡献者、用户,从人员的数量来看,一般情况下是 维护者 << 贡献者 << 用户。也就是说,大部开源社区的小伙伴都是用户。
用户是有差别的,用户与用户之间的差异,有时比维护者之间还大。有的用户是深度用户,他们除了简单使用开源软件外,还可以能会对软件进行意见反馈和二次改造。这部分深度用户对社区是非常有意义的,因为他们能将使用时候遇到的 bug,可能的改进思路反馈给社区,让贡献者和维护者不断的优化软件,提高用户体验,提高使用便利性。所以深度用对开源社区来说,是非常重要的角色,如果你也是开源社区的用户,那可以通过反馈 bug、提建议需求来逐步转变成深度用户。
03
我是怎么参与开源的
这个部分的参与开源是专指站在贡献者和维护者角度看待开源的。我参与“贡献”开源项目其实非常早,但是仅仅是自己 GitHub 仓库的项目。大学时我主修数学专业,但是更想从事软件开发方向的工作,所以在大学期间我就创建了很多 GitHub的仓库。是的,在自己的仓库中创建仓库再迭代也是参与开源的方式,但是是否能流行起来就是另一个故事了。此时的开源更多的是外部需求,我想通过 GitHub 向外界展示我是会写一些代码的,希望能在职业市场获得认可。
之后,随着我在工作中花的时间越来越多,而且我创建的仓库没有人使用,我渐渐就失去了了维护的动力。
但从用户变成开发者,或许你只需要向前多走一步。毕业之后,我从事了软件行业,使用了很多开源软件。有一天,我突发奇想,想看看某调度系统的任务是如何运行的,我在 IDE 点进了项目的源码,花了三天时间,通过日常使用和代码注释,弄懂了它是如何运行 shell 任务的。
在此期间我还发现了源码注释中有一个拼写错误。怀着试一试的心态,我对源码进行了修改,阅读了项目的贡献指南,并向原库提交了 PR。社区响应非常迅速,第二天就将 PR 合并了。从此,我就从用户转变成了开发者。这是一个非常简单的修改,但是正是因为向前多走了一步,才让这一切发生。当我现在回想时,这个PR当然有我细心阅读代码的原因,但是和我下定第一步的决心也密不可分。我可能不是第一个发现这个问题的人,因为很多人可能都会阅读到这块的源码,但是可以肯定我是第一个提出并解决这个问题的人。所以我认为,开源除了保持好奇心外,还要勇于行动。表达自己的需求,提高自己的执行力。
随着第一个PR 被合并,我看源码的范围越来越广,每个模块都或多或少都会涉及,我也会把遇到的问题创建 issue,并修复我遇到的,或者社区中遇到的问题。与此同时,我的 commit 数量也逐渐变多,在 1 年 6 个月后,commit 数量达到 40 多个时,我被提名成为项目的 committer。
是的,我花了 1.5 年才完成从用户到 committer 的转变,而且只完成了 40 个PR。我列出这组数字想表达的是,我并不是什么大牛,我只是比别人多坚持了一点点时间。我们项目很多人花了 6 个月的时间就成为了 committer,而且 commit 无论是数量还是质量都远高于我,我愿意称他们为真正的大牛。但是开源并不是大牛的专属,像我这个样普通的人也能有属于自己的一亩三分地。这个章节我想告诉大家的是:坚持在开源世界中,比技术强更加重要,你能坚持或许你已经成功了一半了。
可能有小伙伴要问了,为什么我要参与开源,我能得到什么好处?于我而言除了可以成为 committer 这样带少许光环的好处外,给我更多的是满足自我认同,让我知道真的有人写代码时会精益求精,当我项目的代码被下载、被运行时,会有一种我写的代码改变了世界的错觉。那种感觉就像攀爬了很久,历经艰险,终于看到了太阳升起一样,会让我觉得一起都值得。
或许你也和我一样是一个普通的 coder,但要不要也尝试一下让自己变得不同呢?
04
加入社区
随着国内开源的迅猛崛起,Apache DolphinScheduler 社区迎来蓬勃发展,为了做更好用、易用的调度,真诚欢迎热爱开源的伙伴加入到开源社区中来,为中国开源崛起献上一份自己的力量,让本土开源走向全球。
参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括:
贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。
社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689
非新手问题列表:https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22
如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/docs/development/contribute.html
来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。
参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手
微信(Leonard-ds) 手把手教会您( 贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心 )。添加小助手微信时请说明想参与贡献。
来吧,开源社区非常期待您的参与。
社区官网
https://dolphinscheduler.apache.org/
代码仓地址https://github.com/apache/dolphinscheduler
您的 Star,是 Apache DolphinScheduler 为爱发电的动力❤️ ~
投稿请添加社区小助手微信
(Leonard-ds)
点击阅读原文,加入开源!
点个在看你最好看