手把手教你参与一个开源项目

为什么参与开源?

  • 开源的简单理解
  • 什么情况下参与的开源

开源的简单理解

开源的简单理解,将自己所做的东西,公开出来,别人开源看到、借鉴、及拿来使用。也正是因为有了开源,我们不再需要重复造轮子,借助于开源产品及框架,开发者可以站在前人的基础上,用最短的时间就能做出高效稳定的系统,在开发效率及稳定性上都有了极大优势。

初次接触代码是在 2008 年,接触到 SAAS 自助建站,但那时还没有开源的 SAAS 自助建站系统,论坛里好多小伙伴对此都有非常高的期待,于是想着利用空余时间自己写一个出来,于是在 2010 年那会发布了第一个开源项目,寻仙 WAP2.0,发布于中国站长站。几个月的时间下载量一千多,看着别人在使用我的作品,使我精神上得到了极大的满足,也是由此热爱上了开源。

参与开源的初衷更多的是热爱,人生中应该要做一些自己所喜欢的事,在进行的过程中会发现即使写到半夜十二点也感觉不到累,思维会极其活跃清晰,这可能就是所说的,要有信仰以及追求。

选择适合自己的开源项目

  • 参与开源项目有什么要求
  • 选择自己最擅长的领域
  • 你不知道的

参与开源项目有什么要求

参与开源项目,有些对本身的技能并没有很高的要求,刚毕业,只要有一颗充满热情的心,都可以尝试参与。比如写一个小而美,能解决具体需要的工具。

选择自己最擅长的领域

选择开源项目参与时,选择自己最擅长的领域,一定要适合自己当前能力及熟悉方向的,找自己感兴趣的参与进去。避免让参与开源给自己造成精神上的压力,以及成为生活中的负担。

你不知道的

另外还有些开源项目完成任务后是有激励的,是实实在在的钞票,不是某某代金券。并不是开源项目就一定是需要参与者无偿付出纯粹为爱发电。

开源项目的入门案例

快速体验:https://res.zvo.cn/msg/demo.html

  1. 第一步,引入 msg.js
js 复制代码
<script src="https://res.zvo.cn/msg/msg.js"></script>
  1. 第二步,一行代码使用
js 复制代码
msg.info("Hello Msg")

如何找到能参与的开源项目

方式一:在你喜欢的开源项目中,有好的想法,可以在开源仓库中提 issues

方式二:针对开源项目中,使用者在 issues 提的问题及 bug

方式三:不少开源项目作者都是业务时间进行更新维护的,时间不会很充足,可以针对开源作者所分布的一些任务进行提取,主动参与任务

方式四:某些开源组织会发布一些任务,其中涉及到各种语言及知识点,比如华为云开源组织中,就罗列出很多开源任务,开发者如果在其中有恰好自己熟悉的,便可以非常方便的提取:https://gitee.com/HuaweiCloudDeveloper/huaweicloud-cloud-native-plugins-kits

或者点击链接查看,此处

正确的方式进行沟通交流

良好的沟通方式可以在最短的时间内,将信息传达给他人。

  1. 可以在项目中提 issues,也可以加相关的微信群、QQ 群,进行交流。网络中从来不缺键盘侠,以公正的态度提出问题,发现优点,借其优势成全自身,不能提供负面讨论,既消耗自己的时间,又影响对方的心情。
  2. 避免各种问题直接问开源作者,开源作者大多是利用业务时间参与的,他开源是因为热爱他的创造,但并不代表喜欢被各种询问,去被动回答各种重复性问题。尽量不去直接占用开源作者的时间。
  3. 沟通时,将自己的信息表达明确,尽量减少出现的来回询问互动过程,让帮助你的人能感觉到你是认真的、带着诚意的,那回答者还能有帮助求职者后的愉悦,而不是时间被浪费后的暴躁。

如何阅读和理解开源代码

开源项目中的 README.md 及相关文档是必读的。第一步必然是先看文档说明,其中即使有不需要的也大概浏览一边目录有个印象,避免自己花了半天时间阅读代码找问题,而问题就在文档中明确有说明。

要参与进去,可以先定一个小目标,先自己在本地能跑起来,能跑起来了,那就可以尝试改动并验证改动是否正确。有的开源项目时间比较久了,文档也比较完善,会容易许多。而有的开源项目可能文档会变少,又或者作者还没来得及把文档补全,遇到这种情况可能就要多踩一些坑了。参与开源项目的难度跟它的文档是成正比的。所以自己所做的或参与的开源项目,尽可能使入门文档齐全。

如何提交自己的贡献

  1. 加入到仓库的开发者之中

如果是自己主导或非常多的参与某个开源仓库,开源加入到仓库的开发者中,改动即可直接推送上来。

  1. Fork 仓库

大多数情况下,你想参与别人的开源项目,进行贡献时,开源 Fork 这个仓库。Fork 后,会克隆出一个自己的仓库来。所有的修改都要自己克隆后的这个仓库,也就是自己的仓库中进行修改。需要注意的事,每次更改功能前,要同步一下,保证自己克隆的仓库代码是最新的。

改动完成后,提交一个 Pull Request 到主仓库进行申请合并。

这些年参与开源的收获

内心充实,精神十足,更加有自信,因为这些多人都在用我的作品。

技术上有了显著提升,没感觉到累,经验跟技术还不知不觉就提升了。

增加了知名度,自从 18 年创业以来,无任何销售人员,纯技术团队,客户通过开源项目主动照过来。并且在日益内卷的当下,因为有自身稳定可靠的产品,在销售团队方面没有成本、系统稳定及熟悉,BUG 跟修复方面投入很少,大幅缩减成本,保持较高的利润率。

相关推荐
假装我不帅23 分钟前
asp.net framework从webform开始创建mvc项目
后端·asp.net·mvc
神仙别闹26 分钟前
基于ASP.NET+SQL Server实现简单小说网站(包括PC版本和移动版本)
后端·asp.net
计算机-秋大田1 小时前
基于Spring Boot的船舶监造系统的设计与实现,LW+源码+讲解
java·论文阅读·spring boot·后端·vue
货拉拉技术1 小时前
货拉拉-实时对账系统(算盘平台)
后端
梓羽玩Python1 小时前
推荐一款用了5年的全能下载神器:Motrix!全平台支持,不限速下载网盘文件就靠它!
程序员·开源·github
逆天的蝈蝈2 小时前
开源与商业的碰撞TPFLOW与Gadmin低代码的商业合作
低代码·开源
掘金酱2 小时前
✍【瓜分额外奖金】11月金石计划附加挑战赛-活动命题发布
人工智能·后端
代码之光_19802 小时前
保障性住房管理:SpringBoot技术优势分析
java·spring boot·后端
ajsbxi2 小时前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
颜淡慕潇3 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决