在开源项目中做出你的第一个贡献
创始人
2024-03-01 23:23:35
0

这是许多事情的第一步

women programming

有一个普遍的误解,那就是对开源做出贡献是一件很难的事。你可能会想,“有时我甚至不能理解我自己的代码;那我怎么可能理解别人的?”

放轻松。直到去年,我都以为是这样。阅读和理解他人的代码,然后在他们的基础上写上你自己的代码,这是一件令人气馁的任务;但如果有合适的资源,这不像你想象的那么糟。

第一步要做的是选择一个项目。这个决定是可能是一个菜鸟转变成一个老练的开源贡献者的关键一步。

许多对开源感兴趣的业余程序员都被建议从 Git 入手,但这并不是最好的开始方式。Git 是由许多有着多年软件开发经验的超级极客维护的。它是寻找可以做贡献的开源项目的好地方,但对新手并不友好。大多数对 Git 做出贡献的开发者都有足够的经验,他们不需要参考各类资源或文档。在这篇文章里,我将提供一个对新手友好的特性的列表,并且给出一些建议,希望可以使你更轻松地对开源做出贡献。

理解产品

在开始贡献之前,你需要理解项目是怎么工作的。为了理解这一点,你需要自己来尝试。如果你发现这个产品很有趣并且有用,它就值得你来做贡献。

初学者常常选择参与贡献那些他们没有使用过的软件。他们会失望,并且最终放弃贡献。如果你没有用过这个软件,你不会理解它是怎么工作的。如果你不理解它是怎么工作的,你怎么能解决 bug 或添加新特性呢?

要记住:尝试它,才能改变它。

确认产品的状况

这个项目有多活跃?

如果你向一个暂停维护的项目提交一个 拉取请求 pull request ,你的请求可能永远不会被讨论或合并。找找那些活跃的项目,这样你的代码可以得到即时的反馈,你的贡献也就不会被浪费。

这里介绍了怎么确认一个项目是否还是活跃的:

  • 贡献者数量: 一个增加的贡献者数量表明开发者社区乐于接受新的贡献者。
  • 提交 commit 频率: 查看最近的提交时间。如果是一周之内,甚至是一两个月内,这个项目应该是定期维护的。
  • 维护者数量: 维护者的数量越多,你越可能得到指导。
  • 聊天室或 IRC 活跃度: 一个繁忙的聊天室意味着你的问题可以更快得到回复。

新手资源

Coala 是一个开源项目的例子。它有自己的教程和文档,让你可以使用它(每一个类和方法)的 API。这个网站还设计了一个有吸引力的界面,让你有阅读的兴趣。

文档: 不管哪种水平的开发者都需要可靠的、被很好地维护的文档,来理解项目的细节。找找在 GitHub(或者放在其它位置)或者类似于 Read the Docs 之类的独立站点上提供了完善文档的项目,这样可以帮助你深入了解代码。

Coala Newcomers’ Guide screen

教程: 教程会给新手解释如何在项目里添加特性 (然而,你不是在每个项目中都能找到它)。例如,Coala 提供了 小熊编写指南 (进行代码分析的 代码格式化 linting 工具的 Python 包装器)。

Coala UI

分类的 讨论点 issue : 对刚刚想明白如何选择第一个项目的初学者来说,选择一个讨论点是一个更加困难的任务。标签被设为“难度/低”、“难度/新手”、“利于初学者”,以及“ 触手可及 low-hanging fruit ”都表明是对新手友好的。

Coala labeled issues

其他因素

CI user pipeline log

  • 维护者对新的贡献者的态度: 从我的经验来看,大部分开源贡献者都很乐于帮助他们项目里的新手。然而,当你问问题时,你也有可能遇到一些不太友好的人(甚至可能有点粗鲁)。不要因为这些人失去信心。他们只是因为在比他们经验更丰富的人那儿得不到发泄的机会而已。还有很多其他人愿意提供帮助。
  • 审阅过程/机制: 你的拉取请求将经历几遍你的同伴和有经验的开发者的查看和更改——这就是你学习软件开发最主要的方式。一个具有严格审阅过程的项目使您在编写生产级代码的过程中成长。
  • 一个稳健的 持续集成 continuous integration 管道: 开源项目会向新手们介绍持续集成和部署服务。一个稳健的 CI 管道将帮助你学习阅读和理解 CI 日志。它也将带给你处理失败的测试用例和代码覆盖率问题的经验。
  • 参加编程项目(例如 Google Summer Of Code): 参加组织证明了你乐于对一个项目的长期发展做贡献。他们也会给新手提供一个机会来获得现实世界中的开发经验,从而获得报酬。大多数参加这些项目的组织都欢迎新人加入。

7 对新手友好的组织

关于作者

Palash Nigam - 我是一个印度计算机科学专业本科生,十分乐于参与开源软件的开发,我在 GitHub 上花费了大部分的时间。我现在的兴趣包括 web 后端开发,区块链,和 All things python。


via: https://opensource.com/article/18/4/get-started-open-source-project

作者:Palash Nigam 译者:lonaparte 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

微软 Win11 Linu...
IT之家 6 月 20 日消息,在今年 5 月的微软 Build ...
2025-06-21 13:12:08
AI与机器人盘前速递丨南京...
【市场复盘】 周四(2025年6月12日),截至收盘,科创人工智能...
2025-06-13 11:12:10
枚举,计算贡献
枚举,计算贡献 题目描述 对于一个字符串 SS&#x...
2025-05-30 23:43:38
中北大学入选国内首个开源人...
工业和信息化部、教育部与开放原子开源基金会日前在北京联合发布国内首...
2025-05-06 10:17:11
聚众智 共谱AI京彩 | ...
2025年4月18日,在"聚众智 AI京彩"主题引领下2025华为...
2025-04-21 23:18:13
国内首个开源人才评价机制发...
本文转自【央视新闻客户端】; 工业和信息化部、教育部和开放原子开源...
2025-04-19 09:45:07

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...