本文共 2774 字,大约阅读时间需要 9 分钟。
github创建开源项目
( )在发表讲话,讲述了从他创建开源项目的成功和失败中学到的教训。
Andrey是流行的库和GitHub上其他流行的开源库的作者。 白天,他在工作, YC ,前Googler和猫 。 他主要用Python,JavaScript和Go编写程序。
安德烈在演讲开始时概述了开源的一些主要好处:
您已经在代码上投入了大量时间和精力。 开放源代码使其可用和可重复使用。 员工和公司一样来回走动,但是您和其他发现有用的人将始终可以使用开源代码。
urllib3的摘录,这是Andrey创建的流行的Python开源库。
开源有很多好处,但是已经有很多开源代码。 您如何使您的项目脱颖而出? 您可以使用以下4个步骤来构建出色的开源软件。
urllib3每天有数百万人使用,在GitHub上拥有785个星,并且自2008年创建以来一直在增长。Andrey还有另一个项目 ,在GitHub上拥有1,560个星,但是今天仅由15个人使用。 那么哪个项目更成功? 为了回答这个问题,Andrey描述了在项目开始时定义成功如何如何帮助您了解成功与否。
每个开源项目的开始都是这样的:
urllib3的故事始于试图在2008年将数十亿个图像上载到S3的问题。使用现有的Python库,由于没有良好的并发支持,这将花费超过三周的时间。 您可以使用多线程S3客户端s3funnel,但是管理线程很麻烦。 您可以改为在s3funnel中使用工作池,但是现有的HTTP库无法重用连接,并且大多数解决方案都不是线程安全的或缺少多部分(文件发布)编码。 输入urllib3。
一小段请求,urllib3中的流行函数
用Andrey的话说:“(工程学中的)解决方案空间是关于构建某种东西并解决一个问题。对于urllib3来说,这个空间真的很小,对其他事物的解决方案真的很有用,这就是成功的原因。”
开源成功的另一种形式是ssh-chat,它是一种用Go语言编写的加密SSH聊天程序。 安德烈(Andrey)作为一个周末项目开始了ssh-chat。 对项目成功的主要贡献之一始于创建完整的自述文件。 正如Andrey所说:“拥有出色的README基本上是成功的80%。您需要为贡献者回答三个问题:“还有谁使用它?”“他们将其用于什么用途?”和“我在哪里可以获得更多帮助?”
ssh-chat片段,一种用Go编写的流行ssh-chat程序
但是,仅创建出色的自述文件并不会启动ssh-chat令人印象深刻的增长。 为了使其蓬勃发展,它需要更多的牵引力。
为了传播有关ssh-chat的信息,Andrey开始寻求帮助,寻求改进,并寻找方法吸引更多人参与该项目。 为了引起人们的兴趣,Andrey在Twitter上与人们进行了接触,并提供了免费的Go编程课程,以换取打开请求请求的权利。 这克服了使一些人参与并对该项目产生兴趣的最初惯性。 这些早期的贡献者最终成为ssh-chat的拥护者,并开始回答有关Stack Overflow的问题。
建立和维护开源项目的另一个组成部分是学习包容性。 安德烈说:“非常慷慨,非常客气地接受拉动请求”是树立更多社区兴趣的关键一步,也是许多开放源作者一开始就怀念的事情。 而且,让特定的人提出拉取请求比对他的Twitter追随者进行更普遍的询问要有效得多。
通常,程序员往往不是自我推广类型,因此积极营销和推广开源项目并不是自然而然的。 考虑到这一点,安德烈(Andrey)确定了程序员可以自我宣传的方式来促进其项目的方式。
一种方法是编写有关您的项目的有趣的博客文章,以提供有关项目的故事和任务的更清晰的上下文。 是在技术社区中共享的绝佳平台,比自托管博客拥有更多的潜在读者。
与为urllib3和ssh-chat工作的贡献者建立联系的其他机会包括:
“我们想像Docker!” 我们不是吗?
有两件事帮助Docker发展成为一个广泛采用的开源项目:
Docker成功背后的关键见解之一是,在OSS项目疯狂流行之前,他们并没有过度关注业务模型。 那么如何复制呢? 输入“公司来源模型”,其中开源工作成为公司的核心能力和业务。
包含corp'en来源的一些最知名公司包括:
好吧,你没有。 至少不是直接的。
尽管urllib3被广泛采用,但Andrey透露他仅从单个用户那里获得了5美元(他很感激!),证明了项目的广泛采用并不一定提供可持续的收入模型来证明时间和精力的合理性。
一些公司,如和都赞助开源工作。
开源是极其宝贵和有益的,但是要成功地做到这一点,您就必须要努力。
在这种情况下,构建urrlib3的许多工作都意味着将重点放在一个小而又常见的挑战上,编写出色的自述文件,与人们联系以做出贡献,并通过博客文章促进该项目。 还值得一提的是,每个项目都花了一些时间来吸引人,Andrey致力于随着时间的推移改进该项目,这有助于在编程社区中建立自己的声誉和尊重。
简而言之,这是使开源项目蓬勃发展的方法:
翻译自:
github创建开源项目
转载地址:http://cppzd.baihongyu.com/