开源 101:初学者入门指南

2025-06-10

开源 101:初学者入门指南

开源的故事是一个关于社区的故事。它讲述的是人们走到一起,互相学习,共同成长,共同创造,贡献他们的才华和视角,打造伟大的事业。它讲述了人类携手合作所能成就的一切。我不知道 Linus Torvalds 在 20 世纪 90 年代初创建 Linux 操作系统并免费向公众发布时是怎么想的,但我确信他的想法是与众不同的。

当时,大多数操作系统都是专有软件,用户必须付费。Linux 则不同。它是开源软件,这意味着源代码可供任何人免费使用、修改和分发。开源的故事充满了创新、协作和社区。它每天都在邀请你我参与其中。

“开源”一词由 Christine Peterson 首创。您可以在这里阅读相关内容。

在本入门指南中,我们将探讨开源开发的基础知识,包括项目选择和有意义的贡献——我们如何参与其中。如果您已准备好开启您的开源之旅,或想分享您的开源成果,请注册OpenSauced.pizza

为开源做出贡献的好处

为开源做贡献,我最喜欢的好处是结识新朋友,成为新社区的一份子。这些关系给我带来的长期利益非常丰厚。但这并非我贡献的唯一原因。以下是其他几个原因:

  • 学习新技能:开源项目是学习新编程技能的好方法。你可以学习其他开发者的代码,也可以从社区获得对你代码的反馈。
  • 贡献力量:全球数百万用户都在使用开源软件。通过为开源项目做出贡献,您可以为软件的开发贡献一份力量。
  • 获得实际工作经验:当您为开源项目做出贡献时,您将在多个领域展示您的技能,包括:
  • 编程:编写既实用又可读的代码。
  • 解决问题:识别并解决代码中的问题。
  • 协作:与其他开发人员合作以实现共同目标。
  • 沟通:清晰简洁地传达您的想法,无论是在撰写文档还是讨论您正在处理的问题。

您可以在《超越内容创作:开源贡献如何帮助您获得关注》中查看更多原因

开源入门

刚开始时需要考虑很多事情。如果您需要帮助理解术语,请从这篇文章开始:开源术语 101:新贡献者入门。熟悉术语后,您需要找到合适的项目。查阅“选择您自己的开源冒险:成功之路”,探索参与开源项目的不同原因,以帮助您确定从哪里开始。开始时需要考虑的其他一些事项包括:
找到一个活跃的项目。如果存储库有一段时间没有更新,并且维护者没有回应问题、讨论或评论,则表明该项目不活跃。

如果您查看他们的存储库,您应该能够看到最后一个 PR 合并的时间。

最后的贡献

  • 与开源贡献者交流。介绍新项目的最佳方式往往是个人介绍。您可以咨询您所在技术社区的成员,或者访问OpenSauced Insights,查看您感兴趣的技术的贡献者列表,并与他们联系,了解更多关于他们为所参与项目做出贡献的经历。
  • 寻找一个有适合新手的问题的项目。带有“好的初始问题”或“适合新手”标签的项目通常对新手来说比较好。

好的第一张图片

如果没有任何针对初学者的标签,请不要忘记最好的第一期就是你自己编写的

  • 阅读项目文档。找到想要贡献的项目后,阅读项目文档非常重要。这将帮助你了解项目的目标、代码库和编码标准。务必通读 README 和 CONTRIBUTING 指南。这不仅能让你更好地理解项目,还能清晰地解释项目对贡献方式的要求。

查看OpenSauced 社区健康文件

  • 加入社区。加入项目的沟通渠道,例如 Slack 或Discord,以及他们的讨论和博客,并介绍自己。提出问题并表达你对贡献的兴趣。加入社区可以扩大你的人脉,帮助你深入了解正在进行的讨论和开发进度,并有机会获得经验丰富的贡献者的指导。
  • 从小事做起。寻找那些小而易修复的问题。随着经验的积累,你可以开始处理更大的问题或承担更多责任。如果你接手了一个无法完成的问题,不要害怕寻求帮助或告知维护人员。这都是整个过程的一部分。
  • 要有耐心。学习如何为开源项目做贡献需要时间。如果第一次没有把所有事情都做好,也不要灰心。只要坚持学习和练习,你最终就会掌握窍门。

社区协作

加入开源项目就等于加入社区。他们会尽力为您提供支持和帮助。以下是一些帮助您充分利用社区体验的技巧。

  • 审查行为准则 (COC)——如果他们没有,可以创建一个问题请求获取。COC 旨在保障社区安全并获得支持,因此了解 COC 在您的社区中意味着什么至关重要。
  • 寻求帮助。如果你遇到困难,不知道该怎么做或如何沟通,可以提出问题。具体说明你遇到的问题以及你已采取的解决方法。
  • 提供支持和帮助。无论您经验多少,总有人比您落后一步,您可以提供帮助。认识到您可以通过提供支持和独特见解,在各个阶段帮助他人,这有助于增强社区凝聚力,营造积极的学习和成长环境。积极参与讨论,分享见解,并为项目和社区做出贡献。
  • 代码审查是开源贡献流程的重要组成部分。请将代码审查视为成长和改进的机会,并尊重审查者和项目维护者提供的反馈和建议,即使他们质疑您最初的方案。请以优雅的方式采纳反馈,并努力理解他们提出的问题。

文档和技术写作

为文档做贡献是支持开源项目的有效方式。以下是一些支持方式:

  • 找出文档中可以改进的地方,例如信息缺失或过时、说明不清晰或解释不完整。改进文档可以让新的贡献者更容易理解并为项目做出贡献,从而营造一个更具包容性和包容性的环境。
  • 清晰简洁地记录您的更改。解释所有代码修改,包括注意事项。清晰的文档有助于未来的开发人员理解和有效地维护代码库。
  • 创建指南或教程是另一种贡献方式。通过创建或改进用户指南、教程或其他教育材料,分享您的知识和专业技能。拥有资源有助于有效地引导新用户,并帮助他们充分利用项目的功能。

超越代码的贡献

您无需懂代码即可为开源做出贡献。非代码贡献也能带来巨大的影响。以下是一些其他的贡献方式:

  • 项目管理:组织问题、创建项目路线图或协调发布。
  • 翻译:许多项目需要翻译,以便让更多人能够接触到该项目。
  • 分类:协助错误分类或参与论坛活动可以支持社区。您可以解决用户报告的问题、重现错误或提供帮助。这有助于提高项目的稳定性和用户体验。
  • 推广:积极分享项目有助于提高知名度,吸引更多贡献者和用户。分享您对项目的积极体验,撰写博客文章或文章,或在会议或聚会上发言,都有助于项目的发展和影响力。

应对挑战和学习机会

冒名顶替综合症和自我怀疑会影响任何人,尤其是在你刚起步的时候。感到不确定是正常的。每个人的旅程都会有所不同。重要的是要与支持你的社区成员相处,寻求鼓励,并记住这是一个学习的旅程——会有成长的烦恼。

这段旅程的一部分意味着你会收到反馈和建设性的批评。这些都是成长的机会。倾听,理解他人的观点,并利用反馈来成长为一名贡献者。

将合作视为向他人学习、分享想法和建立有意义的关系的机会。

学习贡献的基础知识

随着你的进步,在开启开源之旅时,学习基础知识至关重要。以下是一些需要理解的关键概念。

版本控制系统

版本控制系统 (VCS) 是一种帮助开发人员在协作开发环境中管理源代码和其他文件更改的工具。这意味着多个人员可以同时处理同一个代码库,同时跟踪更改、促进协作并提供随时间推移所做的修改历史记录。Git 是最广泛使用的 VCS 之一,支持分叉、克隆和拉取等功能。您可以查看Git 的官方文档了解更多信息。

编码技术

每个项目都有自己的策略来编写高效、可维护、高质量的代码。其中一些考虑因素包括:

  • 代码组织:代码的结构会影响可读性和可维护性。要了解更多关于这些决策是如何制定的,可以研究模块化、关注点分离和设计模式等概念。
  • 代码可读性:编写易于理解的代码有助于协作并降低出现错误的可能性。实现这一点的方法包括使用描述性的变量名、编写清晰的注释以及一致的格式。
  • 性能优化:编写高效的代码可以提高速度和资源利用率。提升性能的方法包括:算法优化、数据结构选择、缓存和性能分析。
  • 错误处理:当我们发布软件时,考虑如何处理错误非常重要。当发生错误时会发生什么?
  • 代码测试:每个项目都会采用不同的方法并使用不同的软件来编写测试。他们可能会实施单元测试、集成测试、测试驱动开发 (TDD) 或其他方法或方法组合,以确保交付可靠的代码。

项目贡献工作流程

由于开源项目需要维护者和贡献者通力合作,因此制定一些流程来确保积极的合作体验、确保代码质量并维护健康的代码库至关重要。为此,我们实施了一些工作流程,包括:

  • 代码版本控制与协作:我们上面讨论了版本控制系统。学习如何克隆代码库、创建分支、提交更改和推送代码,以及理解协作工作流程(例如分叉、分支和拉取请求)非常重要。我强烈建议您创建自己的项目进行练习,甚至更好的是,邀请一位编程新手朋友一起练习!有关如何操作的更多信息,请参阅我们的“开源入门”部分,了解如何提交贡献
  • 问题跟踪:问题可用于报告错误、建议功能或讨论改进。了解您正在进行的项目如何使用问题、标签和优先级。您可以在Insights 代码库中查看我们如何处理问题。
  • 沟通:花点时间了解一下项目的沟通方式。他们是否使用讨论板或异步沟通平台,例如 Slack 或 Discord?
  • 贡献:贡献之前,请先查看项目的指南和标准。准备好根据反馈更新你的拉取请求 (PR),并与其他贡献者协作。提交 PR 后,会发生很多事情。为此,我写了一篇名为“向开源项目提交 PR 后会发生什么?”的文章。PR 不被接受的原因有很多。你可以在这里了解更多信息

首次贡献者资源

有关入门的更多资源,请查看以下内容:

为开源做出贡献是一个学习新技能、与其他贡献者建立联系并产生积极影响的机会。请记住,维护者也是努力工作以维持项目持续发展的人。请始终保持尊重、耐心和友善。希望本指南能对您的开源之旅有所帮助。如有任何疑问,请告诉我们!我们期待很快在 OpenSauced 上看到您的精彩作品

鏂囩珷鏉ユ簮锛�https://dev.to/opensauced/open-source-101-a-beginners-guide-to-getting-started-37fb
PREV
Git 的力量:协作版本控制指南
NEXT
如何在为开源做出贡献之前评估你的技能水平