维护一个受欢迎的开源项目的6条经验之谈
在2016年至2018年期间,我维护了一个开源项目,下载量达到+80万/月。通过这样做,我学到了六条宝贵的经验,现在我将与你分享这些经验。
这一切是如何开始的 🛫
我在2016年加入Spotify,我的团队需要一个React日期选择器组件。我在GitHub上搜索,发现了很多,但最终决定选择一个。我把它集成到我们的网站,并阅读了代码和文档。而且我很快意识到这个项目还有改进的余地。所以我做了几个PR,增加了一个代码linter,一些重构,和文档的改进。
这个项目的所有者是审查和批准我的拉动请求(PRs)的人。在这里,我看到了我的机会!我给他发了电子邮件,问他是否需要帮助来维护这个项目,他很高兴地欢迎我加入这个团队。*他很高兴地欢迎我加入这个团队!哇!这感觉就像我刚刚加入了一家公司。*感觉就像我刚刚加入了一个秘密俱乐部!我一直想维护一个受欢迎的开源项目,这让我很兴奋。
维护一个开源项目 🛠
我以前从来没有维护过一个开源项目,所以我不知道会有什么期待!但是,我知道我的工作是什么。这个项目很受欢迎,有一堆未解决的问题和未合并的PR。我从解决这些问题开始,然后转到提高代码质量。
一旦我了解了代码基础,我就做了更多重要的改进,例如,对API的修改。
吸取的教训 🏫
两年的时间,154次的提交,我学到了很多!以下是我最宝贵的六条经验。以下是我最宝贵的六条经验。
人们不善于阅读文档 🗒
我花了很多时间编写文档,改善组件的上机体验。但是,我还是遇到了一些在文档中已经回答的问题。这种情况一直在发生,我试着让文档更明显,但这并没有帮助。
这种 "我不能让它立即工作,所以我要问!"的习惯是不好的。"是个坏习惯。作为一名软件工程师,你需要通过阅读文档来学习和前进。不会总是有人来回答你的问题,那么你会怎么做?
好的代码是主观的😋
当我开始维护这个项目时,我还是个初级工程师。我以为我已经把事情搞清楚了,但是,天哪,我错了。我有幸在这个项目中与更多有经验的工程师一起工作,我学到了很多。我很自信,认为 "这就是你写好代码的方式"。然后,有人会做一个完全违背我的信念的PR,我不得不重新评估好的代码是什么样子的。
现在作为一名高级工程师,我看到好的代码并不总是客观的。当然,我们同意一些好的做法。但总有一些人不同意你的观点,而且理由很充分。
好的Git提交信息是很罕见的🤔
这是维护开源项目时最让我吃惊的地方。在使用GitHub的开源世界里,我们有一个有限的空间来与未来的自己交流。我们应该明智地使用这个空间,并且在写提交信息时,尽最大的努力尽量做到清晰。
这就是我的感受,但大多数人似乎并不同意。我会看到没有任何描述的PR,以及写着 "修复渲染错误"的提交信息。这不仅是一种不好的做法,而且也拖慢了你的PR被合并的进程。
合并别人的PR是一种伟大的感觉😍
如果你曾经为一个开源项目做出过贡献,你会知道你的PR被合并的感觉。这感觉很好!我是更大的东西的一部分。我是更大事物的一部分!现在我可以告诉你,作为一个按下合并按钮的人,感觉也很好。这是一个三赢的局面。公关作者、维护者和使用这个项目的人都赢了。
人民是伟大的!🤩
人们从他们的生活中抽出时间来为一个他们不认识的人使用的组件做出贡献。在我看来,这就是开源的意义所在。人们为了更大的利益走到一起。如果你今天没有为一个开源项目做贡献,那就试试吧。如果你在做,就继续做你的工作,你很了不起 ⭐️。
这很有趣,但也会让人筋疲力尽 😰
我在维护这个项目时很开心,但无论我花多少时间去修复bug,总会有新的bug出现。这个组件比我最初想象的还要复杂。有的时候,似乎有源源不断的新问题被制造出来。
在这一点上,基本上是我一个人在维护它,还有其他几个人的支持。我感到有责任,因为有真正的人遇到真正的问题。而我可以通过修复这些错误来帮助他们。所以我做了。做了很多。但它从未停止过,这时我感到很疲惫。
为什么我停止了✋?
在这个项目上工作了两年之后,有一天我意识到,我已经有一个月没有碰这个项目了。这就是我决定停止的时候。我给业主发了电子邮件并解释。他说这很酷,并感谢我的帮助。他甚至从他的公司给我寄来了一些我们都能得到的东西(SWAG)!一件T恤衫和一些贴纸。谢谢你,Javier!
结论
维护一个开源项目是很有趣的。人们都很了不起!但它也会让人筋疲力尽。
下面是我学到的教训的总结。
- 人们不善于阅读文档 🗒
- 好的代码是主观的😋
- 好的Git提交信息很罕见 🤔
- 合并别人的 PR 是一种伟大的感觉 🤔
- 人是很好的!🤩
- 这很有趣,但会让人筋疲力尽 😰