我从开发开源项目中学到的 6 个经验教训

数据科学家的视角

开源真是一个了不起的概念!通过捆绑整个社区的资源、技能和知识,我们可以创造出我们无法单独制作的工具。这些合作产生的工具确实比各个部分的总和要多。

因此,我们数据科学家使用这款免费提供的软件,该软件推动了许多技术的发展,同时仍然有机会参与其开发。

在过去的几年里,我有幸参与了开源,并有机会开发和维护多个软件包!

开发开源不仅仅是编码

在此期间,有很多障碍需要克服,也有很多教训需要吸取。从棘手的依赖关系和 API 设计选择到与用户群的沟通。

无论是作为作者、维护者还是开发人员,从事开源工作都可能非常艰巨!通过这篇文章,我分享了我在这个领域的一些经验,希望对那些想要开发开源的人有所帮助。

当您创建开源软件时,您通常不会专门为自己制作软件包。来自各种不同背景的用户都将使用您的软件。正确的文档对于帮助这些用户入门有很大帮助。

但是,不要低估文档对包的可用性的影响!您可以使用它来解释复杂的算法、提供广泛的教程、展示用例,甚至允许提供交互式示例。

尤其是数据科学相关的软件在涉及复杂的算法时可能很难理解。像讲故事一样对待这些解释常常帮助我使它们更加直观。

相信我,编写好的文档本身就是一项技能。

另一个好处是编写可靠的文档可以减少解决问题的时间。如果用户可以在您的文档中找到答案,那么他们提出问题的理由就会减少。

概述如何 密钥伯特 作品可以在文档中找到。

然而,创建文档不仅仅是编写文档。可视化您的算法或软件对于使其直观大有帮助。你可以从中学到很多东西 杰伊·阿拉姆 当您想要在文档中可视化算法原理时。他的可视化甚至最终出现在官方中 脾气暴躁的 文档!

您的用户群、社区是您软件的重要组成部分。由于我们正在开发开源项目,因此可以肯定地说我们希望他们参与开发。

通过与社区互动,您可以吸引他们分享问题和错误,还可以提出功能请求和进一步开发的好主意!所有这些都有助于为他们创造一些东西。

开源社区确实不仅仅是各个部分的总和

BERTopic 中的许多核心功能,例如 在线主题建模,由于用户强烈要求而已实施。因此,社区非常活跃,并且为检测问题和开发新功能提供了巨大帮助。

实现社区的功能请求大有帮助!讨论摘录 此处.

无论您的包将被使用数百万次还是几次,创建一个包都是了解更多有关开源、MLOps、单元测试、API 设计等的绝佳机会。我已经了解了更多有关开发开源的技能比我的日常工作要多。

与社区本身的互动也有巨大的学习机会。他们会告诉你他们喜欢或不喜欢哪些设计。有时,我发现同一问题在几个月内多次出现。这表明我应该重新考虑设计,因为它并不像我预期的那么用户友好!

最重要的是,开发开源项目让我有机会与其他开发人员合作。

在工作之外开发自己的开源项目确实有其缺点。对我来说,最重要的是维护包、回答问题和参与讨论可能是一项相当大的工作。

如果您有内在动力,这肯定会有所帮助,但仍然需要相当长的时间才能确保一切都顺利进行。

幸运的是,您可以在回答问题、展示用例等时寻求社区的帮助。

在过去的几年里,我学会了在面对重大变化时更加放松。特别是当涉及依赖项时,有时您可以做的事情太多了!

了解您的软件包的使用频率对于了解它的受欢迎程度有很大帮助。然而,许多人仍然使用 Github star 将包等同于质量和受欢迎程度。

确保定义正确的指标。 GitHub 的星星可能会因为适当的营销而被夸大。明星多并不代表人气高。

作为数据科学家,我们必须首先了解我们到底在测量什么。 GitHub star 无非就是用户给某个包打星。这甚至并不意味着他们已经使用了该软件或者它实际上正在运行!

KeyBERT 的下载数量。比 Github 星星更好的指标。

从技术上讲,我可以付钱给一千人来为我的仓库加注星标。相反,我关注各种统计数据,例如下载和分叉,还有我每天收到的问题数量。

例如,如果您的包裹出现在 黑客新闻 但它不会告诉您是否一直使用它。

作为一名心理学家,我倾向于非常关注我的包装设计。这包括文档和教程之类的内容,但它甚至转化为我的编码方式。

确保该软件包易于使用和安装,使采用变得更加简单。特别是当您专注于模块化和透明性等设计理念时,某些软件包会变得非常好用。

主题建模的模块化设计 BER话题.

在开发新功能时,从心理学家的角度来看,可以更容易地知道应该关注什么。用户在寻找什么?如何以解释算法的方式进行编码?为什么用户实际上使用这个包?我的代码的主要缺点是什么?

花时间了解普通用户推动采用

所有上述内容通常会引出一条基本但重要的规则;
保持超级简单

就我个人而言,如果我发现一个新软件包难以安装和使用,我就不太可能在我的工作流程中采用它。

如果您和我一样对人工智能、数据科学或心理学充满热情,请随时添加我 LinkedIn 或跟随我 Twitter。您还可以在我的网站上找到我的一些内容 个人网站.

所有没有注明出处的图片均由作者创建

我从开发开源项目中学到的 6 个经验教训从来源重新发布 https://towardsdatascience.com/6-lessons-i-learned-from-developing-open-source-projects-4617e26f247c?source=rss—-7f60cf5620c9—4 通过https://towardsdatascience.com/feed

–>

时间戳记:

更多来自 区块链顾问