首页 > 其他分享 >4 天 7 条 PR,80% 代码覆盖率,开源是「内卷」还是修炼?

4 天 7 条 PR,80% 代码覆盖率,开源是「内卷」还是修炼?

时间:2022-10-26 15:04:58浏览次数:57  
标签:PR 代码 Screenkeeper 黄骞 开源 摘星 80% 参与

4 天 7 条 PR,80% 代码覆盖率,开源是「内卷」还是修炼?_开源

炎热的夏天,开源摘星计划 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 的代码贡献记录。

4 天 7 条 PR,80% 代码覆盖率,开源是「内卷」还是修炼?_github_02

Screenkeeper Github 主页上记录的为 ShardingSphere 所做的贡献

尽管这期间,会遇到自己怎么样都解不出来的「PR 题」,但社区成员们总会给予他指导,帮助 review 代码,加上丰富的开发者文档,让 Screenkeeper 觉得开源并没有想象中那么难,社区的高效协作,也颠覆了他对传统开发方式的理解。

直到自己对开源有越来越多的了解,并亲身参与后,Screenkeeper 终于理解热情背后的原因:开源更多时候是一种爱好和兴趣,与音乐、电影、游戏一样,其中的过程很放松。能参与多年开源的人,不会用「坚持」这个词,正如游戏玩家不会说自己「坚持」打游戏。

讲述中,Screenkeeper 多次提到保罗·格雷厄姆的《黑客与画家》,在作者看来,计算机并非是冰冷、精确、井然有序的,有时也像绘画一样,是某种原始欲望热烈狂放的表达方式。参与开源,也许就是一个程序员对世界最大的浪漫。

二、80% 代码覆盖率,是今年的目标

热爱不仅出现在 Screenkeeper 的故事里,也融进了黄骞的职业生涯中,在南京的他,已经写了 15 年代码,没有对技术的热爱这几乎不可能发生。在得知黄骞此前在游戏行业,且南京距离游戏公司扎堆的上海很近,我们很自然地问他为什么不去上海?黄骞的答案也很简单:成家了。

谈到成家,自然就谈到了责任。大多数人一听到责任,都会联想到繁琐的工作、严苛的指标、家庭的重担……与之相反的,则是自由、快乐和热爱等各种愉悦的事情。但黄骞和开源的故事,让我们看到了将自由与责任、将兴趣导向与目标导向结合在一起,是如何发生的。

在开源摘星计划中,黄骞参与贡献的 GoFrame 项目,这是一款通用性的开源基础开发框架。2019 年,黄骞接触到了 GoFrame,通过它为公司某个运营功能打通了后端数据,也一步步从使用者转变为贡献者,最终成为了 GoFrame 的 Main Contributor。

4 天 7 条 PR,80% 代码覆盖率,开源是「内卷」还是修炼?_开源_03

黄骞的猫:药药和丹丹

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

标签:PR,代码,Screenkeeper,黄骞,开源,摘星,80%,参与
From: https://blog.51cto.com/u_14935625/5797930

相关文章

  • Spring Boot 并行任务,这才是优雅的实现方式!
    SpringBoot的定时任务:第一种:把参数配置到.properties文件中:代码:packagecom.accord.task;importjava.text.SimpleDateFormat;importjava.util.Date;importo......
  • prim算法(普里姆算法)详解
    了解了什么是最小生成树后,本节为您讲解如何用普里姆(prim)算法查找连通网(带权的连通图)中的最小生成树。普里姆算法查找最小生成树的过程,采用了贪心算法的思想。对于包含N个......
  • ACWing 4480 -- 二分&&双指针&&思维
    题目描述倒垃圾思路其实就是思维题,题意很简单,找到一个居民左侧和右侧(如果存在的话)的垃圾桶中最近的那个垃圾桶,然后让那个垃圾桶的计数器加一。从题目中挖掘的性质:左......
  • C# 开源NuGet插件
    ExcelDataReader 开源免费,Excel读取插件GitHub-ExcelDataReader/ExcelDataReader:LightweightandfastlibrarywritteninC#forreadingMicrosoftExcelfil......
  • 实验6:开源控制器实践——RYU
    一、实验目的1、能够独立部署RYU控制器;2、能够理解RYU控制器实现软件定义的集线器原理;3、能够理解RYU控制器实现软件定义的交换机原理。二、实验环境Ubuntu20.04Des......
  • 优秀开源云原生工具推荐 -- 系列3
     云原生技术在效率上的巨大优势,使其日益成为IT发展的主流趋势。根据Gartner的预测,到2025年,云原生平台将成为95%以上的新数字化计划的基础。围绕云原生中的各个方面,都有这非......
  • SpringMVC学习笔记--wsdchong
    前言:SpringMVC入门、SpringMVC数据绑定、JSON数据交互和RESTful支持、拦截器、SSM框架整合、一、SpringMVC入门1SpringMVC是spring提供的一个轻量级web框架,实现了webMVC设计......
  • nginx配置增加代替头部proxy_set_header信息upgrade支持WebSocket--笔记
    1、开发的数据库分片管理平台使用nginx代理报错页面访问执行没有报错,chrome按F12有如下报错WebSocketconnectionto'ws://mdb.xxx.cn/app/shard_createtable/'failed: ......
  • Spring学习笔记--wsdchong
    前言:理解了基础,就去用轮子,用熟了轮子就再了解基础,然后造轮子。Spring基础、spring的bean、springAOP、spring的数据库开发、spring的事务管理 一、spring基础概念:1spring......
  • appium启动报错Could not extract PIDs from ps output. PIDS: [], Procs: [“ps: uia
    解决办法:找到Appium安装目录下node_modules\appium\node_modules\appium-adb\lib\adb.js文件修改在varoutlines=stdout.split("\n")这行代码下方增加outlines.shift();注......