来看看这位年轻的 eBay 小伙是如何成为 Committer
介绍一下我自己

目前就职于eBay中国,专注于微服务中间件,分布式架构等领域,同时也是狂热的开源爱好者。
如何成为一个commiter
过去几个月,我一直持续在为 Apache DolphinScheduler 项目贡献,也在最近收到了社区 PMC 的邀请,成为了 DolphinScheduler Committer, 这意味着过去一段时间我的贡献在社区中得到了大家的认可。一路走来,听过不少的分享,也获得过不少的帮助,本文结合我自己的体会和一些其他大神的总结,希望能够帮助更多人更好的参与到开源社区。
开始参与开源
万事开头难,但对于参与开源贡献来说,其实并没有那么难,需要的只是一次勇敢的尝试。
翻了翻我在 DolphinScheduler 的提交记录,我的第一个 pr 是删除一份无用注释,多么简单的一个任务,很多人可能根本不屑于做。但确实因为这个 pr,帮助我进入了开源的世界。很多社区中赫赫有名的人在分享他们刚开始参加开源贡献的时候,都是从一些很简单的事情着手,例如增加一个单元测试、参加一个 issue 的讨论或者参与一次版本 Release 投票。这些事情很简单,不会耗费我们很多的时间,但是却可以快速的帮助我们去熟悉一个社区的运作方式,也可以尽快的让社区中的人注意到你。
提升贡献值
Apache 社区非常重视一个人的贡献值, 一个人在社区中的贡献值越高,那么他在社区中就应该拥有越高的声望。
贡献可以是提交代码、修改文档或者参加公开的分享等多种方式,只要是遵循社区的准则,为社区的发展有帮助的行为都可以算作贡献。虽然贡献不分高低,但是参与一些重要 feature 的开发和困难BUG的修复往往能更快的增加你的贡献值,也更容易在社区中获得大家的认可。
因此,当我们进入社区一段时间之后,可能对一些普通的问题已经轻车熟路了,那么这个时候不妨多花时间在一些更深层次的问题上,这样不仅对提升自己的能力更有帮助,也能更好的帮助社区往前发展。
Communication over code
Apache 社区有一个非常著名的准则 "Community over code",意思是社区大于代码,Apache 社区认为维护一个健康可持续的社区比公开一份功能强大的代码更重要,这也是一直以来非常吸引我的地方。
在我刚加入开源贡献者的队伍中时,和很多人一样,觉得代码就是一切,一个项目的好坏由代码直接决定。但是随着越来越深入地参与,我慢慢发现,对于一个大型的多人异步协作的项目,有效沟通远比写代码重要得多。当我们有一个好的想法时,我们首先应该做的不是立刻开始实现这个想法,而是需要通过与社区进行沟通,征求社区的意见:一来、可以看看社区中是否有其他同学对此感兴趣,可以寻求其他小伙伴共同完成任务。二来、借助社区的力量来帮助 Review 我们的想法,还能及时的进行查漏补缺,避免出现写了一大堆的代码,最后发现自己在一开始就错了。在与社区进行确认之后再开始开发代码或书写文档,能够起到事半功倍的效果。
同时,参与日常的沟通讨论也是提升自己活跃度最简单的方式,在初入社区的时候,我们往往由于不自信,不愿意去参与邮件列表中的讨论,认为开源社区高手如云,自己如果说错了会全世界丢人。实际上,如果总是害怕犯错误,很难能够得到进步。当我们对于当前讨论的话题有自己的想法的时候,一定要勇敢的说出来,只要是经过思考得出的想法,最后都会得到社区的尊重和重视。
非常推荐大家参与项目的 Release 投票讨论,因为在这一过程中,你能最方便的知道当前版本的一些改动,同时,这也不会耗费你很多的时间。
如何成为 Committer
虽然 Apache 社区对于 Committer 没有要求必须要做出很大的贡献,但是要想成为 Committer,需要有看得见的贡献值和在社区中保持一定的活跃度,贡献值和活跃度都需要时间的积累,需要长期的投入。大部分同学应该都和我一样,白天在公司里需要完成工作上的事情,只有下班之后才能参与开源项目,因此保持热情和平常心尤为重要。
很多小伙伴往往由于一时兴起,或者在别处听说了某个项目,于是决定参与进来,而经过一段时间的浏览之后,最初的热情慢慢褪去,渐渐的自己也从社区中离开,没有达到最初的目的。我的建议是,从自己的兴趣出发,找到项目中自己感兴趣的模块,多思考项目中当前的设计是否存在问题,有没有更好的实现方式,保持好奇心可以很好的维持兴趣。
在开源贡献的过程中,免不了会收到反对的声音,保持平常心去看待问题。当我们精心设计了一个方案,最后收到别人的质疑的时候,不要因此而止步不前。一方面这其实是一件好事,说明我们的想法被更多的人知道了,另一方面我们需要先从自身出发,问问自己的方案是不是确实有问题,积极的与对方进行讨论,努力说服对方,这其实也是锻炼自己的好机会。
成为 Committer 并不是一件遥不可及的事情,只要坚持持续地为项目贡献,得到大家的认可,终将会有收获。
写在最后
在参与开源的过程当中,我也获得过很多人的帮助,在这里要特别感谢 CalvinKirs、dailidong 还有社区中的其他小伙伴,你们对开源的热爱和投入都深深的影响了我,没有你们的帮助,我无法进入到开源的世界。我也会继续坚持投入到开源社区中,贡献自己的一份力。
来看看这位年轻的 eBay 小伙是如何成为 Committer的更多相关文章
- 一位年轻而优秀的.NET开发者的成长点滴
一,社区的小圈子 今年3月的一次技术交流活动上,那是我们.NET技术社区第一次组织线下活动,由于没什么经验,所以活动组织得比较仓促,内容也比较一般,效果还是有点欠缺.当然,活动本身是必要的,这次活动上 ...
- QQ中未读气泡拖拽消失的实现(参照一位年轻牛B的博主的思路自己实现了一下)
原文链接:http://kittenyang.com/drawablebubble/,博主年轻却很有思想.相仿的年纪,很佩服他! 首先分析拖拽时的图,大圆.不规则的图(实际上时有规律的不然也画不出来, ...
- Spring WebFlux开门迎客,却来了一位特殊客人
话说Spring WebFlux已经出现有一段时间了,但是知道他的人并不是很多.这让他很是闷闷不乐. 还有更惨的是,那些敢于吃螃蟹的人在尝试了他之后,有的竟把代码重新改回到Spring MVC的同步模 ...
- eBay起诉指控亚马逊利用非法手段挖走其卖家
[摘要]eBay在诉状中称,亚马逊的代表滥用eBay的内部电子邮件系统联系卖家,这违反了市场政策. 腾讯科技讯 10月18日消息,据外媒报道,拍卖网站eBay对亚马逊提起诉讼,指控这家美国零售巨头利用 ...
- BAT线下战争:巨额投资或培养出自己最大对手(包括美团、58、饿了么在内的公司都在计划推出自己的支付工具和金融产品,腾讯只做2不做O)
BAT线下战争:巨额投资或培养出自己最大对手 2015年10月12日09:49 <财经>杂志 我有话说(18人参与) 收藏本文 BAT大举投资线下公司,看似咄咄逼人 ...
- DNS原理及劫持问题
对于互联网,人们总是高谈阔论,却很少有人愿意去了解电脑.手机.电视这些设备到底是如何被“连接”起来的.本文通过“我”,一个普通的网络请求的视角,给大家介绍下“我”的工作流程是如何的. 人们动动手指,点 ...
- 轻松了解DNS劫持
对于互联网,人们总是高谈阔论,却很少有人愿意去了解电脑.手机.电视这些设备到底是如何被"连接"起来的.本文通过"我",一个普通的网络请求的视角,给大家介绍下&q ...
- 【Win10 应用开发】实现数据的增量加载
今天,老周有小故事讲,国庆期间.有一次老周在某站台上候公交车.老周旁边也站满了人,突然,有一位头发弄得像电线杆的小伙子,不知为何,没有先兆地就大笑起来. 老周先是看了那小伙子一眼,他手上没有拿什么东西 ...
- HTTP协议 -- 认清协议常用状态码
HTTP协议作为web服务的基础,理所应当受到重视,但是周围的同事能够讲清楚HTTP协议的凤毛麟角.既然是基础,就应该早一点掌握,所以近半年(2016-2月——2016年6月),不准备学习新技术了.首 ...
随机推荐
- 使用多线程提高REST服务器性能
异步处理REST服务 1.使用Runnable异步处理Rest服务 释放主线程,启用副线程进行处理,副线程处理完成后直接返回请求 主要代码 import java.util.concurrent.Ca ...
- 【SSM框架】Spring笔记 --- 事务详解
1.Spring的事务管理: 事务原本是数据库中的概念,在实际项目的开发中,进行事务的处理一般是在业务逻辑层, 即 Service 层.这样做是为了能够使用事务的特性来管理关联操作的业务. 在 Spr ...
- mac安装git、node
1.需要先安装homebrew(之前的文章里有) 2.安装git brew install git 3.安装node brew install node 3.1.安装成功后,查看版本号 node -v ...
- Wget命令解释
Wget主要用于下载文件,在安装软件时会经常用到,以下对wget做简单说明. 1.下载单个文件:wget http://www.baidu.com.命令会直接在当前目录下载一个index.html的文 ...
- ExtJS 布局-Anchor 布局(Anchor layout)
更新记录: 2022年5月30日 发布本篇 1.说明 anchor布局类似auto布局从上到下进行堆叠,但不同的是其可以指定每个元素相对于容器大小的比例. 当调整父容器大小,容器根据指定的规则调整所有 ...
- DAST 黑盒漏洞扫描器 第三篇:无害化
0X01 前言 甲方扫描器其中一个很重要的功能重点,就是无害化,目的是尽量降低业务影响到可接受程度. 做过甲方扫描器,基本上对于反馈都有所熟悉. "我们的服务有大量报错,请问和你们有关么&q ...
- Spring框架系列(4) - 深入浅出Spring核心之面向切面编程(AOP)
在Spring基础 - Spring简单例子引入Spring的核心中向你展示了AOP的基础含义,同时以此发散了一些AOP相关知识点; 本节将在此基础上进一步解读AOP的含义以及AOP的使用方式.@pd ...
- UiPath培训教程
匠厂出品,必属精品 Uipath中文社区qq交流群:465630324 uipath中文交流社区:https://uipathbbs.comRPA之家qq群:465620839 第一课--UiPa ...
- docker实时查看日志
docker logs -f --tail=10 fo-order -f : 查看实时日志 --tail=10 : 查看最后的10条日志. fo-order: 容器名称
- NC15975 小C的记事本
NC15975 小C的记事本 题目 题目描述 小C最近学会了java小程序的开发,他很开心,于是想做一个简单的记事本程序练练手. 他希望他的记事本包含以下功能: 1.append(str),向记事本插 ...