参与开放源码对我来说是很好的。它使我和我做的东西变得更好。我从人们那里得到的一个常见的 问题是,如何去学习一个开源代码库和理解其他人的代码。
在我的博文"开源的耐力 "中,我提出了一个重要的观点。
你对你经常使用的东西贡献最大。
因此,尽管跳进任何一个开源项目并提供帮助可能会有很多乐趣。可持续的贡献最好出现在你经常使用的项目中。你对代码的用例有更好的理解,这将帮助你更好地理解代码。
以下是我在尝试学习或为一个开源项目做贡献时经历的一系列事件。
首先看一下贡献指南!这可以在README.md或项目中的一个CONTRIBUTING.md 文件中找到。如果没有,那就提出一个问题,要求维护者做一个,或者告诉你他们对贡献的期望。
当你在你的电脑上设置项目时,确保你首先安装了依赖项,并且测试通过(如果有的话)。对于JavaScript项目,你大多可以这样做。
- clone repo
npm installnpm test
如果所有这些都成功了,那么你就可以开始了。你想做的最后一件事是克隆一个测试失败的 repo,做你的改动,并认为你的改动是测试失败的原因!这种情况曾发生在我身上。这种情况已经发生在我身上了 :-(
接下来,我试着从我感兴趣的入口处(比如一个函数调用,或者一个带有某个参数的CLI)开始在我的脑海中跟踪代码。这对于较大的项目来说可能会让人望而生畏,但它并不像你想象的那么糟糕。
在我的博文"我应该为什么开源项目做贡献?我谈了一点关于如何找到特定API的代码。
阅读和运行测试也是有用的。破坏东西也是学习代码库的一个有用方法。
这是一种久经考验的调试机制:console.log ,是学习代码库的一个好方法。👍如果你能在浏览器中运行DevTools那就更好了。阅读更多关于在Chrome DevTools中调试NodeJS的信息。
还有一件事你可以试试,就是在你的应用程序的上下文中运行项目的代码。我在几周前的博文"Spelunking in node_modules 👷"中谈了很多。
我发现其他一些有用的东西是要求项目中的某个人带领我完成代码的某些部分。我试着让他们花点时间,把我们的谈话记录下来,并公开发表。这对维护者来说是很有吸引力的,因为让新的贡献者看到的材料是非常有帮助的。这里有一些例子。
我希望这是有帮助的祝您好运!