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

为什么参与开源?

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

开源的简单理解

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

初次接触代码是在 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 跟修复方面投入很少,大幅缩减成本,保持较高的利润率。

相关推荐
Q_19284999063 分钟前
基于Spring Boot的摄影器材租赁回收系统
java·spring boot·后端
良许Linux7 分钟前
0.96寸OLED显示屏详解
linux·服务器·后端·互联网
求知若饥19 分钟前
NestJS 项目实战-权限管理系统开发(六)
后端·node.js·nestjs
gb42152871 小时前
springboot中Jackson库和jsonpath库的区别和联系。
java·spring boot·后端
程序猿进阶1 小时前
深入解析 Spring WebFlux:原理与应用
java·开发语言·后端·spring·面试·架构·springboot
m0_748241701 小时前
DuetWebControl 开源项目常见问题解决方案
开源
颜淡慕潇2 小时前
【K8S问题系列 |19 】如何解决 Pod 无法挂载 PVC问题
后端·云原生·容器·kubernetes
向前看-9 小时前
验证码机制
前端·后端
超爱吃士力架11 小时前
邀请逻辑
java·linux·后端