Skip to main content

【从在校生到Apache Committer之路】

· One min read

个人介绍#

姓名:朱坤帅

学校:东北大学

角色: Apache ShenYu Committer

邮箱:jooks@apache.org

接触开源#

大二下学期,一个偶然的机会,我看到了中科院软件研究所和openEuler社区举办的开源软件供应链点亮计划(下文简称开源之夏)的宣传。后来慢慢地了解到,原来在中国有那么多人活跃在开源社区,极大推动了开源生态的发展。之后也是非常巧合,认识了Apache ShenYu的VP (肖宇),他是我在开源之夏Apache ShardingSphere社区的导师。我提前完成开源之夏的任务之后,看到ShenYu刚进入Apache孵化器没多久,如火如荼,于是就开始接触到了Apache ShenYu。

在社区中成长#

我最早给ShenYu提交的贡献并不是代码,而是文档。当时在官网发现了几个typo,于是果断提交了pr,“混”到了ShenYu的Contributor。

后来参与了社区的例会后,发现了ShenYu作为一个Apache孵化器项目,其实还存在着许多待优化、待丰富的地方。于是,我就从集成测试入手,开始了打怪升级之旅。

事实上,做集成测试能学习到的东西非常多,从Docker、CI到ShenYu的功能实现细节、微服务生态等等。有时在测试时会发现官网文档的不恰当之处,于是就需要自己阅读源码,理解代码逻辑,然后完善或更正文档;有时会发现一些bug,于是就能在定位bug、修复bug中熟悉ShenYu网关的细节。再到后来,逐渐可以自己实现一些new feature。

在对ShenYu项目越来越熟悉的同时,对ShenYu的敬畏感也越来越高,确实有种钻之弥坚的感觉。ShenYu中的设计模式、异步编程、函数式编程等都是非常巧妙,值得学习。

在开源中收获#

回顾参与开源以来的近半年,感觉自己收获颇丰,主要体现在以下几方面。

  1. 技术水平的提升。参与开源不仅能接触很多在学校学不到的知识,同时也可以看到自己曾经学过的“屠龙武术”的实践场景。Apache ShenYu作为API网关,是整个微服务系统的入口,在参与项目建设的同时,自然会接触到各种微服务领域的知识。

  2. 开拓了视野。亲身经历项目new feature的讨论,参与ApacheCon、开源年会这类活动,使得我对微服务生态以及发展趋势有了更系统的理解和思考。

  3. 对求职面试的帮助。在个人简历上多出了开源经历这一项,在我找实习的面试中,确实有一定帮助,也得到了面试官的肯定。

给新人的一些建议#

  1. 适应异步的交流方式。与我们平时的交流方式不同,开源社区往往使用的是异步的交流方式,比如邮件列表、GitHub issue、Jira等,而Apache ShenYu社区推荐的交流方式的优先级是:邮件列表 > Github issue > 微信群。这是因为通过邮件列表和github的方式,可以将问题的讨论过程和结果保留下来,是公开透明的。从另一个角度看,在邮件列表抛出问题,往往能得到最迅速且有效的解决。

  2. 积极参与讨论。社区胜于代码,这是Apache Way提倡的。通过充分的交流讨论而来的代码,更富有生命力。另外,Apache ShenYu社区每两周会召开一次线上例会,会对社区的工作做出周期性总结,以及讨论之后的目标、任务(同时也会发布到邮件列表)。

  3. 如何参与贡献?首先是经过上面说的讨论,然后才是动手。对于在工作中没有应用到ShenYu的人来说,编写集成测试、源码解析文章是非常好的切入点。同时,Apache ShenYu社区还时常会发布很多或易或难的任务,都期待大家的参与。

  4. 给想参与开源但还未动手的在校学生的建议。大胆参与开源吧,在我接触到的几个开源社区中,对学生都是更加友好、期待且包容的。另外,一些组织会举办专门引导学生群体参与开源的活动,比如开源之夏(前面提到的)、GSoC(谷歌编程之夏)等,也是非常不错的参与方式,不仅会有丰厚的奖金,还能结识很多小伙伴和技术大佬。