Skip to main content

【从用户到Committer,别样体验和收获】

· One min read

新晋Committer介绍#

大家好,我是qicz,非常荣幸收到Apache ShenYu社区的邀请成为Apache ShenYu的Committer。我是一个“杂牌”程序设计师。杂牌,是因为那年那月自己也是创业一份子,那时候常常不得不选择不同的程序设计语言,以此练就杂牌大法,这过程中也有更多的机会可以去了解和接触很多品种的项目。我也是一个开源爱好者,喜欢“玩代码”,也因此会常在开源社区得瑟,个人一直秉承着开源理念,也搞过好几个开源项目。在社区常有很多好玩的有意思的开源项目,而Apache ShenYu就是其中之一。下面,我简单的跟大家分享一下,在参与Apache ShenYu社区这段时间的感受。

一、心路历程#

​ 了解到Soul是很早的时候了,正式接触Apache ShenYu是今年9月份的时候,那时刚收到了公司的网关需求,需要很短的时间掌握且要出东西。

​ 对于网关类项目,之前也有研究过比如Spring Gateway, Kong等。经过这段时间的研究并不断的参与到Apache ShenYu项目中,对它的设计理念非常的认可——插件化,所有的一切都是基于插件完成的。虽然类似Kong这样的网关也是支持插件的,但是lua搞起来是真的不好玩啊。另外一个就是Apache ShenYu的文档也是非常的丰富,把核心的设计,还有一些插件的原理都讲解的非常细致。Apache ShenYu是Java实现的,作为杂牌设计师,我还是很稀饭的。但尽管如此,研究它也真的是很痛苦的,第一次看到Apache ShenYu的源码时就非常的头大,那模块分的又细又多。

​ 万事开头难吧,有了好的开头可能就顺利了。我的开头是关于crossfilter的处理,把写在代码中的配置放到外置的配置文件中去。回想第一次提交pr的过程,真的是太磨人了,直到现在都觉得太痛苦了。

二、提供Pull Request#

​ 首先,所有的issue,pr,email都要使用英文。有些时间没有用英文写东西了,很多时候自己写了,都不敢相信和确定自己写的是不是有问题,估计很多时候都搞了中式英文了。不过以自己多年创业经验来说,一切都是纸老虎,很多时候只要坚持做下去,就会越来越好了。直到现在,不断的使用英文整理各类东西,已经越来越游刃有余了。乐哉!美哉!妙哉!

​ 另一个,每次提交pr的checkstyle和test,也是很磨人。因为源码有很严格的规范,从注释到换行,到标点都有要求。从上大学开始接触程序设计,因为导师要求我们必须注意编码风格,所以直到今天一直严格要求自己的编码,不断的操练我的代码洁癖技能。自认为自己的编码很规范了,但是在第一次pr的时候是真的被打败。一方面是流程也不是很清楚,再者因为模块非常多,本地打包checkstyle非常慢,而很多问题需要完整的执行打包流程才能暴露。记得最久的一次,既然花了差不多2个小时。

​ 这过程是真的太痛苦了。不过经过多次的尝试,第一个pr成功了。艰难的开头算是结束了。但是从个人角度是非常支持和赞成的,如果没有这样的细致的要求,何以更好的建设这项目和社区,并以此为基础去帮助和服务更多的小伙伴。

三、社区与公司结合#

​ 在不断对接公司的需求的过程中,对Apache ShenYu的研究也在不断的深入。开始做一些定制的开发,这过程中又不断的发现了其他的bug,于是有了第二个第三个和更多个pr。这过程中,很多时候是周末或者熬夜完成的,是真的很累,但还是非常有成就感的,尤其自己的pr解决了实际的需求,同时得到的社区的认可的时候,真的是成就感满满的。

​ 随着时间的推移,现在对Apache ShenYu已经有很深刻的认识,在未来自己也会尽全力在闲暇投入到社区的建设中,集合实际的需求,不管完善和丰富各类特性的设计和研发,坚持开源的初衷——源自社区回馈社区,为社区做出更多的贡献,与社区一同成长。