从向往开源到成长为Apache ShenYu Committer
个人介绍
姓名:李克国
Github: https://github.com/li-keguo
Role : Apache ShenYu Committer
初识开源
很多人的第一反应,开源意味着开放源代码,意味着免费。一开始,我也是这样想的,直到我看了《大教堂与集市》,了解到什么是真正的开源。在软件设计领域有两种不同的软件开发模式:一种是大教堂,代表着自顶向下的模式,精英进行顶层设计,按照计划完成任务;另一种是集市,代表着自底向上的模式,没有绝对的主导核心,靠的是每个个体的自组织,一起完成复杂的任务。随着Linux的成功,掀起了一场自由软件的运动,自由软件的核心,并不是公开源代码就完了,它还要保证这种开放性具有传染性。自由软件,自组织,众创思维,开放,这些价值观,让我深深被吸引,参与开源的人和组织让我向往。希望自己可以参与到其中,这看起来很酷。
初始Apache Shenyu
第一次认识到shenyu(那时候还是soul)是在去年初(2021),接触到了dromara社区,了解到了soul,当时我对github并不是很熟悉,在导师的鼓励下,我打算提交第一个pr,一顿操作后,我失败了(后来才知道)。之后的一段时间,在阅读了Shenyu的代码、文档、多次debug之后,渐渐对整个项目有了基本的了解。在这个过程,我发现启动shengyu项目后虽然有很多example项目,但是无法立即体验,如果我们需要使用的话就得自己在postman中写相关接口调用或者写curl命令去请求,正好我一直在用idea中http-requst的插件(idea自带)。我能不能给shengyu添加这种文件呢?抱着试试的想法提了一个issue,很快得了允许的回复,于是有了我了第一个pr,这次,我通过阅读文档,一步一步的,终于成功的完成了任务,喜悦之情溢于言表。
贡献Apache Shenyu
再到后来,参与社区活动,社区组织了新人任务,代码清理活动,于是从简单的开始做起,先是简化代码,删除重复代码,到后来简化调用逻辑,修复泛型调用的错误。在这个过程中发现了一个较为棘手的bug,关于sofa在使用时注册元信息时擦除泛型信息,导致被调用时参数解析错误,为修复这个bug,查阅了关于sofa很多文档和代码,最终通过注册时提供泛型元信息,再在调用时解析,成功修复。参与社区会议,听着社区大佬们讨论技术,慢慢成长。也领取一些力所能及的任务,提供pr。比如:在http和Spring-cloud插件客户端注册时获取path信息时从Shenyu本身的注解中获取改为对springMVC相关注解的支持,在设计时考虑对原有设计的支持,选择优先从Shenyu本身注解获取,获取不到再从SpringVMVC注解获取。发现可以拓展的点,提供自己的方案。比如:在Admin中扩展对validation的注解,简化接口校验的逻辑,大大提高了代码可读性和接口安全性。当然在开发过程中也写过bug,成长的路上总会遇到挫折。慢慢参与到了开源之中,获得社区的认可,去理解这种文化。
直到最近接收到了社区的邀请,成为一名committer。我知道这将是一个新的开始……
社区体验
氛围
刚开始,我是抱着对开源文化的向往和好奇来参与的,对于开源只能说是了解。但在参与Apache Shenyu的过程中真正被这种开源的开发方式所吸引。社区提倡开放、自由的价值观,以一种自底向上的、自组织式的开发方式运营。在这里我们每一个提交,讨论,会议都是公开的;在这里没有绝对的领导,大家各抒己见;在这里有一群志同道合、具有黑客精神的朋友们活跃着。
成长
从我的经历来看,和之前相比:代码质量提升了很多,你的代码会被很多人阅读,如果写的不好,会被人改掉;开阔视野,总能在社区的交流中学到没听过的知识,学习新的技术,新的实践,拓宽了知识面;技术能力的提升,Apache Shenyu是一个综合技术要求较高的项目,对接了很多常用的技术实践,每一种技术都有自己独特的技术解决思路。
收获
很多人也许会问,公开源代码,那就意味着免费,自己的劳动成功,别人可以免费使用,这种行为是不可持续的。之前我也有这种疑问,直到参与进来我才渐渐明白,在这里参与开源的的人实现自我价值的方式并不是简单的交换经济的规律,并不以占有稀缺性资源而得到大家的尊重,而是从控制变为赠予,谁提交的多,贡献的多,谁的地位越高,越受到尊重。和具备这样理念的一群人共事,是我最大的收获。
其次我收获到了视野上,技术上的提升,对未来的发展也是大有帮助的。
欢迎更多的人能参与进来,大胆提出自己的想法。
关于Apache ShenYu
Apache ShenYu 是一款JAVA语言开发,易扩展,插件化,组件丰富的API网关,与2021年5月进入Apache 基金会进行孵化。
加入我们
向 [email protected] 发送一封邮件;
发送成功后,您会收到来自 [email protected] 的回信,请按照邮件的提示回复这封邮件,确认订阅;
在回复确认后,您会收到一封欢迎邮件,表示您已经成功订阅了邮件。