我的开源之旅:从毕业到维护者

这可能是你!点击这里提交我们 Maker 博客系列的摘要。


那是 2020 年初,我刚从圣保罗大学获得计算机科学本科学位后抵达法国。我被聘为 reciTAL 新团队的第一位开发者——事实证明,我是团队中唯一的开发者,因为 COVID-19 迅速迫使法国进入封锁,招聘也随之停止。尽管全球大流行及其对个人和职业生活的影响,我仍然重新调整了目标,并在新职位上努力工作。

专注于 FastAPI

在我的第一个月结束时,我的经理转向我问道:“下一个项目你选 Django 还是 Flask?”

于是我进行了研究,我调查了这两个选项,并准备了一份优缺点列表。我非常认真地对待这项任务,因为我想要做出最佳的决定。

在研究过程中,我偶然发现了FastAPI,当时它在 GitHub 上拥有约 12,000 个星标(现在已超过 48,000 个)。FastAPI 承诺解决我在第一个月工作中遇到的一个重大痛点:数据验证。借助 FastAPI,我们可以编写应用程序逻辑,而无需担心客户端发送给我们的数据的形状——以前,我们必须在端点函数的主体中验证数据。

我把 FastAPI 研究结果添加到 Django/Flask 的优缺点列表中,并将其展示给我的经理。新的框架通常会遇到质疑,而 FastAPI 与其他选项相比还很新。但我最终说服了我的经理尝试它。

从入门开始:参与 GitHub 问题

由于我选择了框架,而我的同事都没有熟悉它,所以我想了解更多并通过简化学习曲线来支持我的团队。我给自己施加压力,希望精通使用该框架。这促使我开始阅读,然后在我感到舒适后,开始参与FastAPI GitHub 问题

我参与问题的步骤非常简单

  1. 阅读问题。

  2. 阅读参考资料以更好地了解问题。

  3. 比报告者更深入地研究问题,并努力进行调试。

  4. 解决问题。

步骤 2 尤其重要;一开始我对很多东西都不了解,但我清楚地知道,了解问题和围绕某个特定问题的背景将极大地帮助我,并帮助我学习。

势头增长

我遵循上述流程一段时间,直到它成为例行公事。每天早上醒来后,我做的第一件事就是打开 GitHub 问题并查看通知。我阅读了所有FastAPI 通知,无一例外——即使我第一句话都看不懂。

然后我会定期在工作日查看通知,之后我会在晚上继续探索 FastAPI 生态系统。毕竟,我当时正在隔离。

在 2020 年底,我联系了 FastAPI 的创建者Sebastián Ramírez,并建议创建一个Discord 服务器。他喜欢这个想法,所以我创建了它,并将其所有权交给了他。这让我有了另一个帮助他人的渠道——这很棒,因为我喜欢帮助他人。

势头进一步增长

随着我获得知识和信心,我能够产生我的第一个代码贡献。它们很简陋,但我很快乐。然而,为 FastAPI 做贡献对我来说还不够。我还想为其他项目做出贡献。

我开始四处寻找,看看我还能将学到的东西应用到哪里。我对 Uvicorn 感兴趣,Uvicorn 是一个异步服务器网关接口 (ASGI) 服务器,FastAPI 可以运行在它之上。

我立即创建了一个关于在项目中添加问题类型注释,一位名叫Benoit 的活跃 Uvicorn 维护者对这个问题表示赞赏。我制定了一个计划,为每个拉取请求添加每个文件的类型注释。我花了几月时间执行该计划,然后发现了一些小错误,在那时我开始更多地了解代码源。这是一个循环;我帮助得越多,就越能理解,我理解得越多,就越能帮助别人。

邀请

那是 2021 年 3 月。在处理了许多拉取请求之后,我给自己定了一个目标,没有告诉任何人:在年底之前成为 Uvicorn 的维护者。仅仅两周后,Benoit 就发来了我一直期待的邀请。我太高兴了!我为这个项目投入了大量时间,学到了很多东西,并帮助了许多其他用户,我得到了认可。

成长为维护者

就像我处理 FastAPI GitHub 问题和其他项目一样,我慢慢地、谨慎地开始维护工作。当我审核拉取请求时,我认真对待批准按钮的权力(和责任),经常向其他人征求第二意见。

几个月过去了,我越来越得心应手。但又一次,我感到想要更多。

在 2021 年 8 月,我开始帮助Starlette,FastAPI 基于它的框架(FastAPI 是 Starlette 的一个子类)。Starlette 来自与 Uvicorn 相同的组织,因此我已经在那里拥有了维护者权限。

当然,拥有维护者权限并不意味着你自动感到可以胜任该角色。当我开始参与 Starlette 的工作时,我依靠Jaime Hewland(当时最活跃的维护者)和Tom Christie(Uvicorn 和 Starlette 的创建者)的审核和支持。

时间流逝,我用它来帮助 FastAPI 用户在 GitHub、Gitter 和 Discord 上进行维护,以及维护 Uvicorn 并帮助 Starlette。到 2021 年底,Jaime 和 Tom(Encode 组织的创建者)对 Starlette 的参与度越来越低,所以我介入并更加积极地参与了该项目。

生活方式改变

在 2022 年初,我养成了一些积极的生活习惯,例如晚上 10 点前睡觉、每天去健身房、健康饮食,以及不过度工作。我能够将这些习惯融入到我的生活中,并继续为开源做出贡献。

生活是关于优先级的,而开源和我的健康现在是我的首要任务。现在是 2022 年 8 月,我从未如此快乐。

结论

在谈到我的开源之旅时,缺乏知识从未成为问题;我在需要学习的时候学习,而且我每天都在学习新事物。我认为,在实现一种成就感方面,最重要的因素是确定我的优先级,并始终保持健康的生活方式。

我鼓励任何希望成为开源维护者的人也优先保持积极的生活习惯。这也许可以帮助你在职业或休闲目标方面取得更大的成功和满足。我还建议使用 Discord 和 Gitter 等聊天平台与开源社区中众多聪明的人建立联系。

感谢阅读我的开源之路!


关于作者

Marcelo Trylesinski 是一位巴西软件工程师和 FastAPI 专家,目前负责维护 Starlette 和 Uvicorn。

关于 Maker 博客系列

Anaconda 正在通过 每月博客系列 放大一些最活跃和最受尊重的社区成员的声音。如果您是一位 Maker,一直想寻找机会讲述您的故事,详细阐述您最喜欢的项目,教育您的同行,并建立您的个人品牌,请考虑 提交摘要。有关更多详细信息,并访问丰富的教育数据科学资源和讨论主题,请访问 Anaconda Nucleus

与专家交谈

与我们的专家交谈,寻找您的 AI 之旅的解决方案。

与专家交谈