1 介绍
1.1 开源的定义
简而言之,开源(Open source project)是指在许可下向公众提供以查看、使用、修改和分发的源代码。它通常由其用户社区协作开发和维护。当一个项目被开源,这意味着任何人都可以出于任何目的查看,使用,修改和分发你的项目。 这些权限通过开源许可强制实施。
一些著名的开源项目包括 Django,Postgres,MongoDB,Vue,Go,Ruby,TypeScript,Git 等等。大多数成功的开源项目都是各自所学技能的不同人贡献的结果,不仅是编码技能,还包括其他技能,如写作,语言等。
1.2 开源的个人理解
对于开源的个人最直接简单理解,就是将自己所做的东西,公开出来,别人开源看到、借鉴、及拿来使用。
这样做的好处:正是因为有了开源,我们不再需要重复造轮子,借助于开源产品及框架,开发者可以站在前人的基础上,用最短的时间就能做出高效稳定的系统,在开发效率及稳定性上都有了极大优势。
参与开源的初衷更多的是热爱,人生中应该要做一些自己所喜欢的事,在进行的过程中会发现即使写到半夜十二点也感觉不到累,思维会极其活跃清晰,这可能就是所说的,要有信仰以及追求。
1.3 为什么要参与开源?
开源项目做出贡献的原因有很多。以下是我认为的其中四个原因:
- 学习新技能:为开源项目做出贡献是学习新技能和技术的好方法。通过从事开源项目,您可以获得阅读书籍或参加在线课程可能无法获得的实践经验和知识。此外,您可以与经验丰富的开发人员合作,他们可以提供反馈并帮助您提高技能。
- 构建您的投资组合:开源并不是说不花钱,“免费“只是开源的一小部分特点。实际上,为开源项目做出贡献是构建您的投资组合并向潜在雇主或客户展示您的技能的绝佳方式。当您为开源项目做出贡献时,您可以展示您在实际项目中工作的能力,并向更广泛的受众展示您的编码技能。
- 与他人协作: 开源项目可以接受世界各地人们的修改。开源项目通常是涉及来自世界各地的开发人员的协作工作。通过为这些项目做出贡献,您可以与其他志同道合的人合作,向他们学习,并分享您的知识和专业知识。这可以帮助您建立联系网络,并与您所在领域的其他开发人员建立有价值的联系。
- 获得认可:通过为开源项目做出贡献,您可以获得工作认可,并将自己确立为您所在领域的专家。这可以带来新的工作机会、演讲活动和其他与职业相关的福利。此外,您的贡献得到认可并知道您正在软件开发领域有所作为,这会让你感觉很好。
2 选择适合自己的开源项目
2.1 参与开源项目有什么要求
参与开源项目,有些对本身的技能并没有很高的要求,刚毕业,只要有一颗充满热情的心,都可以尝试参与。比如写一个小而美,能解决具体需要的工具。
不知道如何编码的人也可以为开源做出贡献。您可以帮助为项目网站创建用户界面,或改进现有的自述文件或文档,使其易于初学者理解。不过,后者要求您了解有关项目及其工作的一些基础知识。
注意:开源并不仅仅限于软件。您可以开源任何事物,从数据集到书本。查看 GitHub Explore 来找找有什么是你可以开源的。
2.2 选择自己最擅长的领域
选择开源项目参与时,选择自己最擅长的领域,一定要适合自己当前能力及熟悉方向的,找自己感兴趣的参与进去。避免让参与开源给自己造成精神上的压力,以及成为生活中的负担。
2.3 设置开发环境
在为开源项目做出贡献之前,必须设置开发环境。安装必要的软件和工具,例如像 Visual Studio Code 这样的代码编辑器,Git 这样的版本控制系统,以及创建一个 GitHub 或 GitLab 帐户。拥有正确设置的开发环境可以帮助您高效地工作。
2.4 查找可以参与的项目
设置开发环境后,下一步是找到与您的兴趣和技能水平相匹配的合适项目。考虑你想使用什么类型的软件,你熟悉什么编程语言,以及你想做出什么程度的贡献。
另外还有些开源项目完成任务后是有激励的,是实实在在的钞票,不是某某代金券。并不是开源项目就一定是需要参与者无偿付出纯粹为爱发电。
如何找到能参与的开源项目:
- 方式一: 在你喜欢的开源项目中,有好的想法,可以在开源仓库中提 issues,比如可以登录 Github 的 Trending 找到自己感兴趣的开源项目:
- 方式二: 针对开源项目中,使用者在 issues 提的问题及 bug,对于初学者,请单击“Label”选项,尤其可以注意一些
good fisrt issue和for beginners这些 Tags 来过滤列表:
-
方式三: 不少开源项目作者都是业务时间进行更新维护的,时间不会很充足,可以针对开源作者所分布的一些任务进行提取,主动参与任务
-
方式四: 某些开源组织会发布一些任务,其中涉及到各种语言及知识点,比如华为云开源组织中,就罗列出很多开源任务,开发者如果在其中有恰好自己熟悉的,便可以非常方便的提取,点击此处链接查看。
3 开源的规范与心态
3.1 正确的方式进行沟通交流
在为开源项目做出贡献时,沟通是关键。确保与其他贡献者进行清晰简洁的沟通,在需要帮助时提出问题,并对反馈和批评持开放态度。良好的沟通方式可以在最短的时间内,将信息传达给他人。
- 可以在项目中提 issues,也可以加相关的微信群、QQ 群,进行交流。网络中从来不缺键盘侠,以公正的态度提出问题,发现优点,借其优势成全自身,不能提供负面讨论,既消耗自己的时间,又影响对方的心情。
- 避免各种问题直接问开源作者,开源作者大多是利用业务时间参与的,他开源是因为热爱他的创造,但并不代表喜欢被各种询问,去被动回答各种重复性问题。尽量不去直接占用开源作者的时间。
- 沟通时,将自己的信息表达明确,尽量减少出现的来回询问互动过程,让帮助你的人能感觉到你是认真的、带着诚意的,那回答者还能有帮助求职者后的愉悦,而不是时间被浪费后的暴躁。
3.2 培养自己的耐心
为开源项目做出贡献需要时间和耐心。如果您的贡献没有立即被接受,或者您在此过程中遇到挑战,请不要气馁。坚持不懈,继续学习和成长,并在需要时毫不犹豫地寻求帮助。
3.3 如何阅读和理解开源代码
在开始贡献之前,熟悉项目的代码库和文档非常重要。这将帮助您了解项目的工作原理,以及您的贡献如何适应。您还应该花时间阅读项目的文档,包括其行为准则和贡献指南。
开源项目中的 README.md 及相关文档是必读的。第一步必然是先看文档说明,其中即使有不需要的也大概浏览一边目录有个印象,避免自己花了半天时间阅读代码找问题,而问题就在文档中明确有说明。
要参与进去,可以先定一个小目标,先自己在本地能跑起来,能跑起来了,那就可以尝试改动并验证改动是否正确。有的开源项目时间比较久了,文档也比较完善,会容易许多。而有的开源项目可能文档会变少,又或者作者还没来得及把文档补全,遇到这种情况可能就要多踩一些坑了。参与开源项目的难度跟它的文档是成正比的。所以自己所做的或参与的开源项目,尽可能使入门文档齐全。
刚开始开源项目时,必须从小处着手。首先寻找易于修复的错误、拼写错误或文档错误。这将帮助您适应贡献的过程,并让您逐步培养自己的技能。
4 如何提交自己的贡献
为了方便提交自己的贡献,最好了解 Git 基础知识:
- 什么是 Git,它是如何工作的?
- 如何克隆仓库?
- 如何提交更改?
- 如何解决合并冲突?
- 如何将您的更改推送到远程存储库?
- 加入到仓库的开发者之中
如果是自己主导或非常多的参与某个开源仓库,开源加入到仓库的开发者中,改动即可直接推送上来。
- Fork 仓库
大多数情况下,你想参与别人的开源项目,进行贡献时,开源 Fork 这个仓库。Fork 会在您的 GitHub 帐户中创建存储库的副本,您可以自由修改该副本,而不会影响原始存储库。
Fork 后,会克隆出一个自己的仓库来。所有的修改都要自己克隆后的这个仓库,也就是自己的仓库中进行修改。需要注意的事,每次更改功能前,要同步一下,保证自己克隆的仓库代码是最新的。
- Clone 仓库
下一步是将存储库克隆到本地计算机。克隆会在计算机上创建存储库的本地副本,允许您对代码进行更改并在本地测试它们,然后再将它们推送回 GitHub 上的远程存储库。
要克隆存储库,请单击分支存储库页面上的代码按钮,然后复制 HTTPS 链接。
接下来,打开终端或 Git Bash 并导航到要克隆存储库的目录。进入正确的目录后,运行以下命令,替换为 <URL> 您复制的 URL:
git clone <URL>
4. 创建新分支
首先,切换到计算机上的存储库目录,在进行任何更改之前,请为您的贡献创建一个新分支。这允许您将更改与主代码库隔离开来,并更轻松地管理更改。
若要创建新分支,请运行以下命令:
git checkout -b <add-your-name>
5. 暂存和提交更改
进行更改后,需要暂存并提交它们。暂存准备要提交的更改,提交将更改记录在存储库的历史记录中。要暂存更改,请在终端中输入以下命令:
git add .
这将暂存您在存储库中所做的所有更改。要提交更改,请输入以下命令:
git commit -m "Add <your-name> to Contributors list"
替换为 <your-name> 您的姓名。
- 推送更改
提交更改后,最后一步是将它们推送到 GitHub 上的分支存储库。要推送更改,请输入以下命令:
git push origin <new-branch-name>
替换为 <new-branch-name> 在步骤 3 中创建的分支的名称。
- 创建 pull 请求
最后一步是创建拉取请求以将更改合并到原始存储库中。拉取请求是向原始仓库所有者发出的接受更改的请求。
改动完成后,提交一个 Pull Request 到主仓库进行申请合并。要创建拉取请求,请转到 GitHub 上的分支存储库,然后单击“New pull request”按钮,如图:
为拉取请求添加标题和说明,说明所做的更改。最后,单击“Create pull request”按钮以提交拉取请求。
现在,等待项目维护者审查您的更改并将它们合并到主代码库中。
你或许在查看 README 的时候,发现了损坏的链接,又或者拼写错误。又或者是你是一名新手,使用的过程中发现了问题,又或者是某问题应该在文档中注明。请不要坐视不理,径直绕开,或者是请求他人修复,伸出你的援助之手,解决这些你能看到的问题。而这正是开源的精髓之所在!
28% 的随意贡献 就是说明了文档的开源,诸如拼写错误,段落语句调整、或者是翻译。
你也可以利用如下列出的资源来找到合适的新项目:
- GitHub 探索
- Open Source Friday
- First Timers Only
- CodeTriage
- 24 Pull Requests
- Up For Grabs
- 像忍者一样贡献
- 最初的贡献
- SourceSort
开源项目的入门案例
快速体验:https://res.zvo.cn/msg/demo.html
- 第一步,引入
msg.js
<script src="https://res.zvo.cn/msg/msg.js"></script>
- 第二步,一行代码使用
msg.info("Hello Msg")
5 如何发起你自己的开源项目
一般来说,如果你乐意于他人对你工作的查看和反馈,你就应该开源你的项目。
无论您决定开展项目的哪个阶段,每个项目都应包括以下文档:
作为维护者,这些组件将帮助你交流你的期望,管理贡献并保护每个人的合法权益(也包括您自己的)。他们能够大大增加你积极体验的机会。
如果您的项目在 GitHub 上,则将这些文件放在您的根目录中,并使用推荐的文件名将有助于 GitHub 识别并自动将其显示给读者。
-
选择一个开源许可证: MIT, Apache 2.0, 和 GPLv3 都是非常流行的开源许可证, 但你可以选择其他选项.
-
撰写 README 文件
README 文件不仅仅是说明如何使用你的项目,还可以解释项目的用途,制作过程,以及为什么开源这个项目,还可以指明用户今后可以改进的方向。在这个文件中,你可以尝试用这些角度来撰写:
- 这个项目用作什么?
- 这个项目的作用?
- 如何使用这个项目?
- 以及可以从哪些方面改进这个项目?
- 编写贡献指南:贡献文件 (CONTRIBUTING 文件) 告诉你的受众如何参与你的项目,在你的 README 中链接你的 CONTRIBUTING,这样更多人就能看到他。如果你在你的项目中放入了 CONTRIBUTING 文件,当一个贡献者创建 issue 或者开启一个 pull request 时,GitHub 会自动链接你的文件。
- 提交你的开源项目(代码或者项目)
开源项目的要点是创建有价值且可访问的开源软件,但个人贡献者可以从贡献中获得大量的个人利益。您可以帮助维护您使用的软件,同时磨练您的技术技能。当你在找工作时,你可以指出你在开源软件上的工作作为你技能的证明。最后,希望更多的小伙伴可以参与到开源的贡献当中来。
参考链接: