前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >参与开源项目很难吗?

参与开源项目很难吗?

原创
作者头像
龟仙老人
发布于 2022-03-31 12:15:09
发布于 2022-03-31 12:15:09
9670
举报
文章被收录于专栏:捉虫大师捉虫大师

hello大家好,我是小楼。

流量真是个让人捉摸不透的东西,有时候写了一篇自己感觉牛的不行的文章,结果阅读数据惨淡,有时候觉数据可能没那么好的文章,实际数据却出乎意料。

之前的文章《惨,给Go提的代码被批麻了》就是这样,我以为就一般吧吧,没想到却“火了”。

这篇文章截止目前,发表的20天时间里,在掘金阅读量突破1w,知乎阅读量突破1.8w,头条阅读量破1.7w,微信公众号的阅读加上被转载的阅读也有1w,就连公司内网的阅读都有3k。

可以说这个数据是我从写公众号以来最好的了,但我并不觉得它是我写得最好的文章,所以就很迷。

好了,以上只是写技术文过程中的一点点惊喜,这样的惊喜是我继续写好文章的最大动力,所以动动你们的小手,点赞+在看+转发安排起来。

今天我就顺着这篇文章来聊聊大家可能都比较感兴趣的话题,开源。本文会结合自己的一些看法,从参与开源项目的收益和如何参与开源项目两个方面展开。

参与开源项目的好处

首先要明确,为什么要参与开源项目?总得对我有点好处吧。每个人可能追求不一样,所以我这里就列举一下我知道的好处,看看有没有戳中你的点。

  • 小礼品

这点可能是被很多人忽略的点,因为太小了,但确实也算得上一个好处。如果你掌握了一些技巧,每年从开源社区拿点小(薅)礼(羊)物(毛)是很easy的。尤其是国内的社区,T恤、杯子、背包等等是很容易拿到的。

比如这两年Nacos、Dubbo社区送我的一些杯具:

p2.png
p2.png
p3.png
p3.png

据我观察,阿里的开源项目只要每年都去提一个PR,很大概率会送你礼物,不管这个PR是大是小,可以大到贡献一点源码,也可以小到format一下代码、修改文档中的一些错误、增加一个单元测试等等,所以是不是学到了薅羊毛的技巧?

  • 朋友圈素材

这点只是满足一下虚荣心,其实并没有什么卵用,但还是提一嘴,比如下面这些素材,是发朋友圈装x的利器:

p4.png
p4.png
p5.png
p5.png
p7.png
p7.png
  • 装饰简历

如果你有参与开源项目的经历,写到简历上一般是个加分项,说一般情况是因为我在面试的时候遇到过候选人在简历上这样写:

参与贡献过上万star的项目。(后面还贴上了项目地址)

一看这句描述就有猫腻,为啥强调上万star却不说出项目名称?于是我打开后面的github地址发现,原来这个上万star的项目是个聚合在线学习资料的项目。

不能说参与这样的项目不好,只是简历上这句话让我感觉在打擦边球,所以不但没有加分,反而减分了。

一般来说对项目有过贡献,无论大小,都可以称之为Contributor,贡献达到一定程度则称为Committer,达到多少贡献才能称为Committer一般每个社区都有自己的衡量标准,比如Nacos社区有明确的规定:

p6.png
p6.png

翻译下就是:至少有8个PR,团队协作能力,理解项目的代码风格,能写出优秀的代码。当然也有很多社区没有明文规定,总之就是贡献越多越有可能成为Committer。

所以在简历中如果你是某个项目的Committer就很厉害了,一词胜千言。退一步就算不是Committer,如果你有一些比较重要或者核心的代码提交,也可以写上,附上具体的issue。如果只是代码的format、增加一些单元测试,我建议简历上就不要提了。

  • 能力提升

通常开源项目的代码、设计、规范都是比较优秀的,和优秀的人一起共事能成长更快。

一般我们在参与开源项目时,都是使用英文来交流,所以对你的英文书写能力是个提升。

其次代码规范、测试能力、考虑事情的全面性都将得到锻炼。

以我个人的感受来说,虽然嘴上说写代码要规范,但在公司写代码的时候,有时候就不太注意,都是以快速完成任务为目标,但开源项目不一样,你写的每一行代码都要被众多的大佬一行一行地review,只要有一点点不满意都会要求你修改。

测试也是如此,你写的每一行代码都将被代码测试,单元测试、集成测试。开源项目更相信用代码测试,所以这也锻炼了你写测试和写代码的能力,写出代码不难,写出容易测试的代码还是比较困难的。

  • 提升影响力

这是更高层级的追求,当你想在技术上走的远的时候,需要一些业界影响力,这时,参与开源是个不错的选择,能结识更多的圈内牛人,也让大家能认识你,你的圈子、人脉就会扩张。

提升影响力有什么作用呢?最直接的是,让别人知道你的存在,下一次机会来临时,说不定你会被看中或者推荐。

当然我离这个层次还很远,只是说一点自己的理解。

如何参与开源项目

  • 参与开源的方式

上文其实也提到了,参与开源项目不一定是直接的贡献源码,也可以是对文档的编写或修正、写一些单元测试或者测试用例、也可以写一些开源项目相关的文章。

比如我在去年写《Dubbo为什么要用Go重写?》这篇文章时,就顺手把Dubbo-go项目的README改了

p8.png
p8.png

还有比如在写《使用dubbo-go搭建dubbo接口测试平台》这篇文章时,把这篇文章投稿给了Dubbo-go官方网站,也被收录进去

p9.png
p9.png

这些都算是对开源的一种贡献。当然如果你有代码的直接贡献是最好的,这也是获得技术成长最快的方式。

  • 从哪里开始

如果我们平时工作中用到什么开源项目,没事的时候可以把源码下载下来翻一番,可以按照文档跑起来,打上断点看看是否跟自己想的一样,这时我们便有了一些基础,可以去github上的issue找找,一般的项目会把issue分类,可以从标了good first issue或者bug标签的issue看起,看看有没有自己能解决的,再结合代码,一步一步调试。

这种方式目的性比较强,我就是冲着提交代码去的,而且比较有时间去研究,目前我还没用过这种方式,我更多的是下面提到的这种方式。

另外一种是如果我在使用开源项目的过程中发现了一个bug,或者一个可以优化的点,可以去github上提个issue先讨论讨论,如果社区的人也认可你的观点,可以把你的修复或者修复作为一个PR提交上去。

这个方式我在Dubbo/Sentinel/Nacos/Skywalking/Go中都是这么干的,都是平时遇到的一些问题,反哺到社区。

发现问题往往比解决问题更困难,开源项目也是如此。

等等,在你想提交代码前,我建议你好好看看开源项目的规范,一般位于项目的README或者官网中,他对issue有什么要求,对代码有什么要求,对commit message等等都有什么样的要求,如果不按照这些规范来提交,可能你的下场会和我一样,一个字「惨」。

  • 提交代码流程

这一步网上资料比较多,我这里只说个大概的流程,具体到每一步我相信你能在网上找到更详细的教程:

  1. 提issue讨论(不是必须,有些项目可以直接提代码)
  2. fork代码仓库
  3. 在fork的代码仓库拉一个分支,并把代码提交到这个分支上
  4. 签署Contributor License Agreement(简称CLA)
  5. 在这个仓库上向原仓库发起一个PR
  6. 等待代码Review反馈,并按照反馈修改
  7. Merge进代码仓库,贡献完成

最后说一句

万事开头难,往往第一个PR是最难提交的,如果尝试着提交了,我相信你会打开新世界的大门。

对了,虽然我参与到开源项目的经验不够多,但可以给你一点参考,有正例也有反例

好了,今天的分享到此为止,我们下期再见!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
我参与了两个接近100k+star的开源项目!聊聊开源项目贡献指南
以 SkyWalking 举例。在本地编译源码前,先查看相关的文档:https://github.com/apache/skywalking/blob/v8.0.1/docs/en/guides/How-to-build.md 。大致了解后,我们就可以开始操作了。
Guide哥
2020/08/28
5560
新手如何快速参与开源项目
开源这件事情在软件开发领域一直是一个高频话题,我们工作中不管是使用到的工具还是第三方库都离不开开源的支持。
crossoverJie
2023/08/18
3080
新手如何快速参与开源项目
如何参与开源项目
这篇文章的起因是朋友的一个疑问:如何参与开源项目?搜索了一下网上类似的文章,大多都是讲解如何操作 GitHub 来给开源项目贡献代码、开源协议有哪些以及开源项目的一些介绍。而开源项目作为开源思想的产物,最难的从来都不是贡献代码,而参与的方式也不只有贡献代码一种(虽然贡献代码是最直接的)。下面就根据我的经验,介绍一下如何参与到开源项目中。
郭旭东
2020/12/30
7240
如何参与开源项目
以Dubbo为例,聊聊如何为开源项目做贡献
Github 上有众多优秀的开源项目,大多数 IT 从业者将其当做了予取予求的工具库,遇到什么需求,先去 Github 搜一把,但有没有想过有一天自己也可以给开源事业做一些贡献呢?本文将会以 incubator-dubbo 项目为例,向你阐释,给开源项目做贡献并不是一件难事。
kirito-moe
2018/09/30
7650
以Dubbo为例,聊聊如何为开源项目做贡献
如何从零开始参与大型开源项目
PingCAP
2017/05/18
9010
如何从零开始参与大型开源项目
如何向 github 上开源项目提交代码
github 是一个代码手艺人交流的平台,开发者搞基交流平台,开发者通常直接亮出 github account 进行认识对方,面试时通过 github account 来了解这个人的代码基本能力。
阿炳数记
2022/04/27
1.1K0
如何向 github 上开源项目提交代码
如何参与一个顶级开源项目
最近个人事情比较多(搬家、换工作、短暂休息)所以一直也没有顾得上博客更新,恰好最近收到一封邮件提醒了我。
纯洁的微笑
2019/08/26
8910
如何参与一个顶级开源项目
如何找到并快速上手一个开源项目
以前有写过两篇文章来简单聊过如何做开源的事情,最近我自己组了一个社区里面也有不少朋友对开源感兴趣,于是我便根据自己的经验系统的梳理了一些关于开源的事情。
crossoverJie
2024/07/01
4220
一边在大厂一线搬砖、一边操着CTO的心搞开源:一位普通中年程序员的开源十年路
采访嘉宾 | 于雨 蚂蚁集团 CTO 线可信原生技术部技术专家、Dubbogo 社区负责人
深度学习与Python
2022/04/19
4020
一边在大厂一线搬砖、一边操着CTO的心搞开源:一位普通中年程序员的开源十年路
如何去参与一个开源项目
相信大家平时有空的时候,都会去逛一些开源项目吧,不知道大家有没有参与到这些开源项目中来,最近小六六第一次给人家的项目提了次PR,所以给大家分享一下提pr的步骤,我觉得这是一种很不错的一种学习方式吧,下面小六六通过一个简单的案例来告诉大家PR的流程,随便分享下我这次的PR项目。
用户9927510
2022/07/29
3810
如何去参与一个开源项目
如何参与github开源项目
clone到本地 在github上有注册的账号,https://github.com/ 找到自己感兴趣的开源项目,如:https://github.com/wuhan2020/wuhan2020.github.io 在项目主页点一下fork 点右侧自己的头像,点击Your repositories,找到刚才fork的项目 clone 该仓库到本地,切到相应的分支,默认dev 这时你就可以发挥自己的聪明才智修复Bug,开发新功能,进行commit,push了 pull request 当你贡献完毕后就可以把
kiki.
2022/09/29
5620
如何参与github开源项目
Github 开源项目贡献指南:如何给开源项目做贡献 (上)
腾讯开源
2017/05/05
3.4K0
Github 开源项目贡献指南:如何给开源项目做贡献 (上)
TiDB 开源社区指南(上)
本系列文章旨在帮助社区开发者了解 TiDB 项目的全貌,更好的参与 TiDB 项目开发。大致会分两个角度进行描述:
PingCAP
2018/11/09
9340
记录第一次给开源项目提 PR
本文是深入浅出 ahooks 源码系列文章的第八篇,这个系列的目标主要有以下几点:
GopalFeng
2022/08/01
6700
记录第一次给开源项目提 PR
如何参与开源项目
技术人提升自己的影响力除了写博客,组织开源. 当然也可以在前期通过自己技术带来的流量为自己实现商业价值,当然我们在一开始的阶段一般人没有办法自己组织一个开源项目,这个时候我们就需要参与一些开源项目.
ge3m0r
2024/12/01
1350
开源项目贡献者指南
PR统一在Gitee平台上进行提交,如果你不知道如何提交PR,可以在Gitee平台里去学习。这里不作说明。
帐篷Li-物联网布道师
2024/03/20
1140
CloudEon欢迎每一位开源贡献者加入!
图片 图片 图片 图片 图片 图片 图片 undefined(https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/co
CloudEon开源
2023/09/04
2180
参与开源,就从今天开始吧
昨天得知成为 Apache DolphinScheduler的Committer,此时此刻内心依然十分激动。
Nauu
2020/04/26
2.5K0
经验贴 | 如何从业务实际需求出发,参与 5.9K star 的 Node.js 开源项目
—\ntheme: channing-cyan\n—\n\n> 软件正在吞噬世界,而开源正在吞噬软件\n\n## 前言\n\n开源对于软件生态的意义已经人尽皆知。如何参与开源,也成为很多“开源”新手最关注的问题。本文旨在记录作者从使用autocannon到为autocannon提Pull Request并被Merge的过程。从一个真实案例出发,向大家介绍:如何从业务实际需求,反哺开源生态?\n\n本文相关的PR地址:https://github.com/mcollina/autocannon/pull/443nn## 背景\n\n最近团队在做服务端 SSR 框架的升级。对于升级工作来说,如何量化升级前后的性能提升数据是非常重要的部分,也是衡量我们工作成果的最有效的手段。\n\n为此,我对市面上流行的压测方案进行了一些考察比较,autocannon从使用方式、可定制化、细粒度的结果指标等多个维度都很满足我们的需要。最重要的是还处于活跃维护状态。于是我们基于autocannon封装了一个团队内部的压测工具。\n\n
陈煮酒
2022/06/12
4980
经验贴 | 如何从业务实际需求出发,参与 5.9K star 的 Node.js 开源项目
大学生开发者通过开源项目积累实践经验指南
开源社区为开发者提供了一个展示技能、学习新技术和与全球开发者合作的机会。对于在校生来说,参与开源不仅能帮助他们提升技术水平,还能积累实战经验、增强就业竞争力。本文将探讨在校生如何积极参与开源,并分享一些实践建议和代码实例。
一键难忘
2025/01/03
1510
相关推荐
我参与了两个接近100k+star的开源项目!聊聊开源项目贡献指南
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档