炎热的夏天,开源摘星计划 2022 届的比赛还在火热的开展中。每天,来自全球的近 800 位开发者都在开源摘星活动群中,激情地聊着他们参与开源贡献的点点滴滴,近 100 位突出的贡献者,更在竞相角逐当月的积分贡献榜「Top 王」。
有的人说「开源也玩出了内卷」,有的人说「摘星让他们在实践中真正了解了什么是开源」。那么,参与开源摘星计划的是一群什么样的人?他们正在经历怎样的故事?开源是如何改变他们的工作和生活的?
在开源摘星计划 7 月贡献之星名单中,有两位开源项目的开发者,也是积分榜 Top 3 的杰出贡献者——Screenkeeper、黄骞,与我们分享了他们的开源成长故事。
一、4 天 7 条 PR 背后的成长故事
早上 9 点的深圳,每一分钟都无比宝贵,是否能赶上最近的地铁或公交,能否实现这个月的全勤,都取决于这短短的几分钟。在几次预约后,Screenkeeper 只能抽出这临上班前的短短一小时,同我们分享他参与开源的故事。
对他来说,时间是宝贵的。因为本职工作中,他带着一支 10 多人的技术团队,除了日常的管理协调工作外,还需要花更多的时间来把控技术风向,开源就是他实现这一目标的方式之一。于是,开源更多是在他的「业余时间里」而存在,但这从不影响他的投入心力和时间。
2012 年,Screenkeeper 从大学毕业,今年已是他工作的第 10 年。从广州到深圳,从 PHP 到 Java 再到 Golang,一路走来,当年初出茅庐的程序员,如今已成了半个技术专家。
追溯对开源认知的建立上,Screenkeeper 回忆,他的第一位职场导师对他的影响是最深刻的。因为这位导师在开源上的积极实践者,「多年来我始终把他当成自己的榜样」,Screenkeeper 说。对他而言,榜样的激励不仅仅在技术能力上,更多是对工作和开源的热情:在忙碌的工作之外,他的导师依然花时间参与开源,并且享受其中。这样的举动,为他埋下了开源贡献的热情与种子。
如今,因为技术管理的需要,Screenkeeper 的工作中会用到各种开源软件,而这些软件有时并不能完全满足自己的要求,于是他尝试为软件添加新的功能,从此走上了参与开源的道路。
在开源摘星计划中,Screenkeeper 报名参与了 Apache ShardingSphere 这个毕业自 Apache 基金会的顶级项目。在全球范围内, Apache ShardingSphere 拥有着 400 多位 Contributor,被 170,000 开发者所关注(Star 数),Commits 就有 35,145个, 其复杂度可见一斑。
今年 7 月 14 日,Screenkeeper 在开源摘星计划中给 Apache ShardingSphere 提交了第一个 Pull Request 。短短 4 天的时间内,他就为 ShardingSphere 贡献了 7 条 PR。截止目前,Screenkeeper 的 Github 主页上,停满了密密麻麻的为 ShardingSphere 的代码贡献记录。
Screenkeeper Github 主页上记录的为 ShardingSphere 所做的贡献
尽管这期间,会遇到自己怎么样都解不出来的「PR 题」,但社区成员们总会给予他指导,帮助 review 代码,加上丰富的开发者文档,让 Screenkeeper 觉得开源并没有想象中那么难,社区的高效协作,也颠覆了他对传统开发方式的理解。
直到自己对开源有越来越多的了解,并亲身参与后,Screenkeeper 终于理解热情背后的原因:开源更多时候是一种爱好和兴趣,与音乐、电影、游戏一样,其中的过程很放松。能参与多年开源的人,不会用「坚持」这个词,正如游戏玩家不会说自己「坚持」打游戏。
讲述中,Screenkeeper 多次提到保罗·格雷厄姆的《黑客与画家》,在作者看来,计算机并非是冰冷、精确、井然有序的,有时也像绘画一样,是某种原始欲望热烈狂放的表达方式。参与开源,也许就是一个程序员对世界最大的浪漫。
二、80% 代码覆盖率,是今年的目标
热爱不仅出现在 Screenkeeper 的故事里,也融进了黄骞的职业生涯中,在南京的他,已经写了 15 年代码,没有对技术的热爱这几乎不可能发生。在得知黄骞此前在游戏行业,且南京距离游戏公司扎堆的上海很近,我们很自然地问他为什么不去上海?黄骞的答案也很简单:成家了。
谈到成家,自然就谈到了责任。大多数人一听到责任,都会联想到繁琐的工作、严苛的指标、家庭的重担……与之相反的,则是自由、快乐和热爱等各种愉悦的事情。但黄骞和开源的故事,让我们看到了将自由与责任、将兴趣导向与目标导向结合在一起,是如何发生的。
在开源摘星计划中,黄骞参与贡献的 GoFrame 项目,这是一款通用性的开源基础开发框架。2019 年,黄骞接触到了 GoFrame,通过它为公司某个运营功能打通了后端数据,也一步步从使用者转变为贡献者,最终成为了 GoFrame 的 Main Contributor。
80% 代码覆盖率,这是黄骞今年要在 GoFrame 中实现的目标。代码覆盖(Code coverage)是软件测试中的一种度量,用来描述程序中源代码被测试的比例和程度,某些程度上能反映软件代码的质量。
之所以定下这样的目标,是希望让 GoFrame 成为 awesome-go 的推荐项目,被更多人知道和使用,而 80% 的代码覆盖率是硬性指标。在年初的项目规划和社区商讨中,黄骞主动接下这个任务。这意味着需要去接触 GoFrame 的大大小小的各种模块,针对每个模块的代码去编写测试用例的代码。
在这个过程中, 可以熟悉各个模块的源码,同时对各个模块的实现方式有更加深刻的理解。这样,在平时一些小伙伴提出问题的时候,可以更好的帮助他们解决遇到的问题,同时也提高了自己的能力。
在目标和责任感的推动下,黄骞每月花 15 个小时左右,与其它项目成员一起贡献代码。伙伴们的创意被更好地凝聚在一起,不断提高自身技术实力的同时,项目也在不断壮大,并被越来越多的开发者使用。
在黄骞看来,开源是一件孤独的事情。开源项目一万个使用者中,可能只有十几个会参与贡献,但就是这群被责任自发推动的人,互相信任,彼此帮助,创造出独特而有价值的作品,共同对抗世界的孤独。
三、开源,从摘星计划开始
在「开源摘星计划」中,像 Screenkeeper 和黄骞这样的故事还有很多。帮助更多人知道开源、了解开源、喜爱开源并参与开源,是「开源摘星计划」一直在做的事。
2022 年,腾源会社区联合国内外 80 多家开源基金会、开源社区、开源项目、研究机构、高等院校与媒体机构发起了「开源摘星计划」,在「开源摘星计划」中,参与者可选择各类任务、参与项目共建,累积个人积分,在「良性竞争」的情境里感受开源乐趣,加深对开源的投入。
截至目前,「开源摘星计划」累计吸引了云原生、大数据、AI、边缘计算等 10 多个技术领域,超过 80 个不同的开源项目加入。有超过 1000 位在职开发者、开源实践者、开源布道师、开源合规专家,参与到了实际的开源贡献里。
未来,希望更多的开发者能参与到开源中来,共建「开源摘星计划」,踏上你的开源之旅。
更多信息请访问:
开源摘星计划官网:https:// cloud.tencent.com/act/pro/weopen-star\
开源摘星计划 Github 仓库:http s://github.com/weopenprojects/WeOpen-Star