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

为什么参与开源?

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

开源的简单理解

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

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

相关推荐
Adolf_19931 小时前
Flask-JWT-Extended登录验证, 不用自定义
后端·python·flask
叫我:松哥1 小时前
基于Python flask的医院管理学院,医生能够增加/删除/修改/删除病人的数据信息,有可视化分析
javascript·后端·python·mysql·信息可视化·flask·bootstrap
海里真的有鱼1 小时前
Spring Boot 项目中整合 RabbitMQ,使用死信队列(Dead Letter Exchange, DLX)实现延迟队列功能
开发语言·后端·rabbitmq
工业甲酰苯胺1 小时前
Spring Boot 整合 MyBatis 的详细步骤(两种方式)
spring boot·后端·mybatis
新知图书2 小时前
Rust编程的作用域与所有权
开发语言·后端·rust
giszz2 小时前
【开源大模型生态9】百度的文心大模型
人工智能·开源
wn5313 小时前
【Go - 类型断言】
服务器·开发语言·后端·golang
希冀1233 小时前
【操作系统】1.2操作系统的发展与分类
后端
华为云开源3 小时前
openGemini 社区人才培养计划:助力成长,培养新一代云原生数据库人才
数据库·云原生·开源
GoppViper4 小时前
golang学习笔记29——golang 中如何将 GitHub 最新提交的版本设置为 v1.0.0
笔记·git·后端·学习·golang·github·源代码管理