在您的编程之旅中,您可能听说过“开源”一词。但这实际上意味着什么?
在本文中,我将解释什么是开源软件,并讨论它与其他类型的软件有何不同。我还将讨论开源软件的积极因素以及如何开始为项目做出贡献。
什么是开源?
开源软件是可供人们查看、修改和共享的公开代码。开源的一个例子是 freeCodeCamp。
如果我想查看 freeCodeCamp 课程的代码,可以在 freeCodeCamp 的 GitHub 页面上查看。
如果我在其中一个挑战中发现了一个错误,那么我可以通读贡献者指南并提出修复建议。开源软件使我能够为 freeCodeCamp 代码库做出贡献。
有数以百万计的开源项目可供选择和贡献。
“开源”一词从何而来?
二十多年前,“开源软件”一词是由 Foresight Institute 的联合创始人 Christine Peterson 创造的。她想创造这个词,以此来吸引新人进入这个领域。
原来的名称是“自由软件”,但对“自由”的实际含义有很多混淆。为了澄清这个问题,Peterson提议将名称更改为“开源软件”。
开源与其他类型的软件有何不同?
现在我们了解了开源软件的基本定义,让我们来看看另一种类型的软件。
什么是专有软件?
与开源软件不同,只有专有软件的原始作者才能修改其代码。此类软件的用户必须同意不以任何方式对其进行更改,除非他们获得所有者的许可。
专有软件的例子包括iTunes,Microsoft Windows和Adobe Photoshop。
什么是开源许可证?
开源代码在以下许可协议之一下发布。这让你知道你可以用代码做什么,以及你需要什么权限(如果有的话)才能使用它。
这是最受欢迎的开源许可证列表。
Apache 许可证 2.0BSD 3 条款“新”或“修订”许可证BSD 2-Clause “Simplified” 或 “FreeBSD” 许可证GNU 通用公共许可证 (GPL)GNU 库或“宽松”通用公共许可证 (LGPL)麻省理工学院许可证Mozilla 公共许可证 2.0通用开发和分发许可证Eclipse 公共许可证 2.0 版
让我们更详细地看一下其中之一。
麻省理工学院许可证
该许可证起源于 1980 年代,几乎没有限制。有了这个许可证,你几乎可以对代码做任何事情,只要你保留版权和许可声明。
choosealicense.com 为 MIT 许可证提供了以下说明:
它允许人们使用您的项目做几乎任何他们想做的事情,例如制作和分发闭源版本。
使用此许可证的一些项目是Ruby on Rails,Node.js,React和Angular。
如果您有兴趣了解有关上述任何其他流行许可证的更多信息,请单击该列表中的任何链接。
开源软件有什么好处?
使用和使用开源软件有很多好处。其中一个好处是你对你决定使用的代码有多少控制权。
程序员可以查看代码并决定要更改代码的哪些部分。普通用户可以随心所欲地使用此软件,而无需有人告诉他们以特定方式使用它。
另一个好处是,你可以从使用开源项目中的代码中学到很多东西。来自不同背景的开发人员可以学习开源项目的代码,并与他人分享他们的工作。
开源软件也被认为比专有软件更安全。由于代码是免费提供的,因此开发人员可以比专有软件更快地发现问题、进行更新并修复这些错误。
开源背后还有一个非常大的社区。因此,对于希望加入开源社区并开始做出贡献的初学者来说,有很多有用的资源。
如何开始为开源项目做贡献
有很多资源可以教授如何为开源项目做出贡献的基础知识。以下是一些可以帮助您入门的:
如何为开源项目做出贡献 - 初学者指南开源终极指南
您可以在 GitHub 中搜索标记为“需要帮助”、“仅限初学者”或“良好的第一个问题”的标签。找到与您的技术堆栈相匹配的项目后,请务必通读项目贡献指南。
如果你在开始使用 Git 或 GitHub 时需要一些帮助,这些指南可以帮助你:
什么是 GitHub?什么是 Git?以及如何使用这些开发人员工具Git 和 GitHub 速成班
为开源项目做出贡献是进一步发展您的技能并与其他开发人员合作的好方法。如果您想打入科技行业,这也是您获得经验的另一种方式。
乍一看可能看起来很吓人,但您可以从一些小事开始,例如修复文档中的拼写错误。
以下是可以帮助您找到要参与的项目的网站列表:
good first issueCodeTriage
结论
开源软件是可供人们查看、修改和共享的公开代码。“开源软件”一词是由 Foresight Institute 的联合创始人 Christine Peterson 创造的。
使用专有软件,只有软件的原始作者才能修改其代码。此类软件的用户必须同意不以任何方式对其进行更改,除非他们获得所有者的许可。
开源软件有很多好处,包括大型社区支持、有用的入门贡献指南、通过研究人们的代码来学习,以及获得与其他开发人员合作的经验。
如果您有兴趣开始为项目做出贡献,请在 GitHub 上搜索标有“需要帮助”、“仅限初学者”或“良好的第一个问题”的标签,并找到您感兴趣的项目。
我希望这篇文章对您有所帮助,并祝您在开源之旅中好运。