当前位置:首页 > 每日看点 > 正文内容

在校生如何在开源社区中成长?

卡卷网10个月前 (01-17)每日看点160

这个问题我来回答再合适不过了。

说句实话,自从进了开源的坑,特别后悔。

后悔没早点进来。

毕竟,大学里打游戏浪费了那么多的时间,要是那时候就开始刷社区,我估计现在的工资还能翻倍。

参与开源社区是一个完全没有门槛的事情——不看学历不看出身不看工作经验,只要一根网线就可以为这个星球上最顶级的代码仓库添砖加瓦,是不是想想还有点小激动呢?

那么,要怎么做呢?我们把这个问题分解成这样几步,包教包会,随治随走。

第一步:注册一个GitHub账号

要是这一步不会的话……那还是别往下看了。

第二步:挑一个入的了你的法眼的开源项目。

这一步很重要。你需要找一个活跃、知名、有价值、纯Java实现的开源项目。这是一个非常重要、不涉及任何技术细节的过程,你需要一些时间仔细浏览各大项目,了解它们的基本信息。不怕用力过猛的话这里有一个GitHub星星排行榜,尽管大胆正面刚。如果胆子比较小,就挑几百几千颗星的项目。它决定了你接下来几个月的工作重点,以及未来的发展方向。如果挑选得当,努力几年,成为领域专家的话,直接被该领域的公司高薪挖走也说不定。我几年前是在Groovy社区刷经验的,供参考。

活跃的意思是说,当你翻它的issue列表的时候,能够看到基本上每个issue都有人回复。每个PR都能得到快速响应。反例:阿里巴巴的诸多项目,开源了就不管了,issue没人回,PR没人理,跟骗炮的渣男有什么区别:

alibaba/fastjson

第三步:怼它。

这一步简单的就好像在说“把大象关冰箱一样“,实际情况复杂千万倍,足以把你劝退。

在一开始,你可能完全摸不到开源项目的门路,没关系,先从修typo开始。无数人的开源生涯都是从修typo开始的,我也不例外。这个过程只是为了让你熟悉开源项目的协作流程。你看这是我给现在的东家修的第一个bug,啥技术含量也没有。

在校生如何在开源社区中成长?  第1张

我给Gradle提交的第一个PR,有技术含量么?没有,你也可以。

如果你不了解协作流程,也就是说,你不知道怎么得到上图这个界面?看这个免费课程,我录了手把手教你提交PR的过程,最关键的是,有真实仓库让你练手!

前置知识 - 使用Git/GitHub/Markdown进行项目协作 - 写代码啦!

那你马上就会问了,怎么找到typo呢?这里有一个工具让你方便地找typo蹭PR?啥,你说你不会用?学啊,谁一生下来就什么都会的?

jsoref/spelling

搞笑的是这哥们拿着这个工具到处蹭PR,后来被人骂了:

在校生如何在开源社区中成长?  第2张

“你特么能不能不要老骚扰那些没主动让你检查拼写的人?”

强调一下,这个过程只是为了让你熟悉协作流程(比如提交PR,讨论,Sync a fork,Squash commits之类),千万别本末倒置爱上修typo的过程。

了解了协作流程之后,就可以开始主动找bug修了。啥,你说你不会修bug?那要你何用?开源社区最重要的能力就是修bug啊。你一定要从开源社区协作中,得到“无论什么bug,来了我就会修”的能力。要达到这个目的,一定要先学会使用调试器:

初级 - IDEA/Maven/调试器的基本使用 - 写代码啦!

挑bug修的过程也是很讲究的。除非你真的是专家,否则请挨个浏览项目的issue tracker,专门找软柿子bug修,不要碰难题。原则是:

  • 一定要有可以重现的例子。不能重现的bug别说你,项目作者都不一定能解决。
  • bug要“看上去比较重要”,也就是说,你修完之后不需要费劲向项目作者解释其必要性。

当然,如果你真是神级人物,来者不拒,什么bug都能修,那请随意挑选bug。比如说下面这哥们之前跟我一个组,后来调去隔壁组做企业级的Maven支持,就是这个:

在校生如何在开源社区中成长?  第3张

顺便打个广告,我们在做企业级的Maven构建加速业务

这哥们做Maven支持的时候不停地发现并解决Maven的bug:

在校生如何在开源社区中成长?  第4张

所以你看,Gradle对Maven才是真爱啊。

修bug的过程没办法描述,因为bug千变万化。有兴趣的话可以观看我直播修的两个bug,一个是给FastJson项目,一个是给Maven项目:

现场直播给阿里巴巴Fastjson修bug_哔哩哔哩 (゜-゜)つロ 干杯~-bilibilibilibili.com/video/av59

修过一些bug之后,你的编码水平应该有了质的提升,现在可以尝试挑战更高难度的开源协作方式了:造轮子。

造轮子有两种:帮别人造轮子和自己造轮子。

帮别人造轮子的意思是说,你翻著名开源项目的issue tracker,从里面挑选feature request并实现之。换句话说,就是有人想要一个功能但是该项目还没提供,你就帮他们实现掉。这个过程可能会被对方直接拒绝,所以请小心行事。当然,如果你的实现最终被接受,这将是更有价值、更能给你简历增光添彩的经历。

另一种方式就是自己造轮子,针对某个细分领域实现之前还没人实现过的功能。注意,在开始之前千万注意看看有没有别人已经造好了。自己造轮子是最锻炼设计实现能力的事情,没有之一。

如果你担心找不到合适的bug或者feature request,think twice。你真的有仔细翻阅过他们的issue tracker,挨个阅读其中的讨论么?没把前十页仔细的看过一遍,不要跟我说找不到。

好了,还有疑问,请阅读我的这篇文章:

blindpirate:跳出弱鸡循环2

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/9649.html

分享给朋友:

相关文章

现在手里有一万闲钱,买什么币好?

今天是2024年7月29日,看看我的持仓吧。只有几百刀的那些微持仓就不说了,以下持仓都在几千刀~几万刀不等。不构成任何投资建议,成本是多次买入的大致均摊成本$TIA 成本0$DYM 成本0 $SAGA 成本0$STRK 成本0$ETHFI...

国内比较好用的快速开发平台有哪些?

国内比较好用的快速开发平台有哪些?

低代码/零代码快速开发平台,一直是近年来很热的一个词,各大巨头的纷纷加入也给这个赛道。题主需要一个能二次开发的低代码快速开发平台,可以试试JVS低代码(私有化)。JVS低代码前端采用Vuex框架和Element-ui组件库,后端则基于Spr...

WordPress建站同时面向B端和C端,有什么好的解决方案?

这个很容易实现呀,只不过需要自己开发,整体用权限管理就可以实现了,B端和C端是不同用户权限,C端能看到的菜单入口和B端不一样就行了。技术层面实现没问题的,只不过就是看你们的技术能力和投入了 ,这样的需求应该没有现成的开源插件。只能找人定制开...

下一个风口最可能是什么?

下一个风口最可能是什么?

肯定是一带一路了,国内没什么卷的空间了,现在国家正在给一带一路的第三世界国家建设基础设施,等交通打通之后,就是通信打通,通信打通就是贸易打通,未来我建议大家重仓小语种,阿拉伯语最值得学(也有其他小语种自己去查一带一路国家),将来去其他国家随...

鸿蒙到底是不是安卓套壳?

鸿蒙到底是不是安卓套壳?

把它是不是套壳先放在一边吧。我讲一个事情,大家自己判断。华为有一个应用,叫手机管家。这个手机管家对一些系统底层设置有影响:比如华为从 EMUI 9 开始不允许将第三方启动器设置为默认启动器,依靠的就是这个手机管家。为什么这么说呢?在网上搜索...

自己拥有一台服务器可以做哪些很酷的事情?

自己拥有一台服务器可以做哪些很酷的事情?

我就有一台,跑了两年了,ipv6 ddns 网络,加虚拟化平台.跑了个 winserver 和 ubuntu 服务器。稳的雅皮!拆掉后盖,散热更好。烟盒固定硬盘。键盘防止灰尘掉落。电池拆掉,屏幕拆掉,也是散热考虑。屏幕拿去做便携副屏了。换...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。