如何实现你的目标:第一个开源软件获得 1000 个 GitHub Star
我的第一个开源 ReactJS 项目/组件
年轻开发者的成功故事
今天,我要写一个软件开发领域的成功故事。我不会写 Uber、Instagram、AirBnB 或微软。我要写一个小型的 Node.js 包管理工具。
但是...成功的故事在哪里?
这个工具是由两个年轻的程序员开发的,他们是新手,没有经验,没有任何软件发布方面的知识,自推出以来不到一个月的时间,他们在 GitHub 上就获得了 1000 颗星! 🌟🌟
几周前,我在这里写了关于这个工具的文章。此外,我还尝试在我的所有社交网络上推广它,因为我认为这是对这两位新程序员坚持不懈学习的最好奖励:多练习!
npkill — 此工具可列出系统中所有 node_modules 目录及其占用的空间。然后,您可以选择要删除的目录以释放空间。太棒了!
在本文中,我将总结如何实现目标的步骤以及这个小项目成功的关键。
如何实现你的目标
GitHub 上流行的存储库往往具有一些共同的特征:
- 带有产品运行图片/gif 和漂亮徽标的自述文件。
- 文档。
- 代码QA(静态代码分析)。
- 贡献说明。
- 明确定义的设置部分。
- 支持(响应问题/PR)
- 用各种方式发布软件新闻。
自述文件
README是访客访问你的代码库时首先看到的内容。因此,你应该确保README 包含项目的基本信息。
我发现了一些非常有趣的项目,但由于 README为空或自动生成,因此我没有安装。
README 中真正重要的是什么?当有人查看你的项目时,他们想知道:
- 它是什么?
- 代码有多好?
- 有多少支持?
- 包括什么?
- 它看起来像什么?
- 怎么設置?
让我们来逐一解答这些问题。
它是什么?
这是最基本的。我浏览过 GitHub 上的很多仓库,读完 README 之后,还是不太清楚它们的作用。我可以通过项目名称来判断。我个人喜欢读源码,有时我会浏览源码,试图推断项目的作用,但这次却报了ERROR 错误。
用一条推文描述你的项目(约 140 个字符)。每个功能都应该用专门的章节来描述,以便你能够详细解释每个功能。所以,请只考虑你的项目是做什么的。
同样重要的是,一个标志,一个图像。这会将您的项目与图像联系起来,并为您的项目打造品牌。为您的项目设计一个标志非常重要,因为您可以创建多媒体内容并在社交网络上发布。
npkill 的描述非常容易理解。
轻松查找和删除旧的和繁重的 node_modules 文件夹 sparkles
代码有多好?
代码质量自科学诞生以来就是软件工程的一个主题,因此本文不会讨论什么才算是软件质量。但是,我们可以考虑一些变量来表明代码质量是否得到保障。
- 它已经过充分测试。
- 它通过了样式检查(ESLint 等)。
- GIT 使用 linter 提交。
- 问题和 PR 模板。
- 贡献创建 PR 的说明和指南。
- 它可以在当前状态下进行编译(并且相对没有问题)。
- 它通过了某种形式的静态分析。
有多少支持可用?
如果我使用这个开源项目时遇到问题,谁能帮我?这是所有开源项目中都存在的问题,也是决定一个开源项目能否被大公司采用的关键因素(除了许可问题)。
确保有人为可能出现的问题提供支持至关重要。在这方面,我给 npkill 程序员们提了一条建议,因为他们在第一个问题出现时就把自己困住了,所以要找出问题所在,并尝试解决问题,让发现 bug 的人完全放弃。我告诉他们,你们犯了一个错误,你们要做的第一件事就是支持这个人,告诉他你会一直陪伴着他,并且会找到解决他问题的办法。
这样,由于开发人员会帮助您,因此在遇到问题的人和项目创建者之间会建立连接链接,并且如果需要任何进一步的信息来搜索错误,则连接会更紧密。
因此,回复用户至关重要(确实没有必要急于在 1 小时内回复,因为我们都有个人生活)。
另一个基本支持是必须在每一个社交网络中提供的支持,因为我们发现这些网络中的用户可能不是程序员,但实际上正在使用该软件。
包含哪些内容?
这包含一个项目功能列表,列出项目的功能。最好标明目前处于开发阶段或路线图中即将开发的功能,并清楚地表明它们尚未开发。这样做可以避免用户发现缺少此功能而提出一些评论或价值主张。
您可以在此处创建一个无需详细描述的功能列表。这些功能的说明可以委托给“如何使用? ”部分。
它看起来像什么?
无需安装或配置任何东西,即可展示结果至关重要。您可以制作视频、GIF 或搭建一个服务器,演示应用程序的运行情况。
这将展示您的项目带来的价值,您可以在社交网络上使用此内容,相信我,如果 README 必不可少,那么对您的项目进行可视化演示将充分利用它,许多同事都会欣赏您的努力。
我自己将一些不完全是我所寻找的存储库标记为有趣的存储库,但通过直观地看到它们是什么,它们已添加到我的书签中,以备将来需要时使用。
展示您的项目成果!
我该如何设置它?
想象一下,您的项目已经吸引了一些想要尝试的用户,但您还没有提供如何启动它的说明……真是一场灾难!
您应该详细写出如何在不同的平台(您估计的平台)上配置您的软件,但您应该尽可能地使其简单。
您可以创建一个快速或基本配置版本,其中的步骤更容易执行;并拥有一个具有更多配置的高级版本。
但是你不能忘记配置项目的说明,因为如果决定使用它的用户找不到简单的方法,他们可能会寻找另一个做类似但易于安装的项目。
该项目在哪里发布?
此阶段对于项目发展至关重要,务必牢记,您并非在发送垃圾邮件,而是在向同行推广一个能够解决问题的项目。撰写这些文章的目的并非为了提供毫无价值的仓库链接,因此您必须更详细地解释您的项目。如果您准备了一份完善的 README 文件,它将作为撰写文章的基础文档。
在这个项目中,我负责让它更广泛地
传播,因为我已经在不同的社区写作了好几个月,这次机会是为了给所有读者带来价值。当然,创作者们也提供了技术支持,解答了所有疑问。
博客
我第一次写关于npkill 的文章是在我的个人博客上,那里每天大约有 100 次访问(我不会对我的数据撒谎,但我希望很快会有更多访问量😄)。
Dev.to
在Dev.to中,npkill 真正开始攀升,很快,它就达到了 500 颗星。
在 Dev.to 上已经有200 条回复和超过 3500 次的访问量,此外社区也开始知道这个帖子。
中等的
在Medium上,我交叉发布了这篇文章,该帖子的访问量又达到了1000 次
。
HackerNoon
该项目也在Hackernoon上发表,文章的访问量超过 100 次。
叽叽喳喳!
这可能是产生更多社区的地方,因为社区已经产生了运动,一些人为释放空间而高兴,而另一些人则不断评论说他们可以使用Linux 的 find 命令完成同样的任务(我们已经知道可以用这个命令做什么,用 shell 脚本甚至汇编程序可以做什么,但你难道没有意识到这是另一个以 illusion 作为开源世界洗礼而开发的开源项目吗?🤖)。
非常感谢所有为该模块做出贡献的人😄。
GitHub
该项目在 GitHub 上已经连续几天成为
TypeScript编程语言的热门话题,这一事实使得它被更多的开发人员所熟知。
我知道npkill也在reddit.com的几个帖子中被讨论过;主要是在 JavaScript 和 node.js 中。
结论
我向你们介绍了一个由两位年轻程序员开发的项目,他们经常告诉我,他们以为没人会下载他们的软件。然而,凭借着热情、毅力,以及对工作的热爱,他们的项目在 GitHub 上的下载量已超过数千次,转发量超过数千次,并获得超过 1000 个星标。
每个人都可以让自己的项目被社区使用,但永远不应该失去的是对所做事情的热情,是的,请记住,你必须创建具有以下特征的软件:
- 文档。
- 易于安装和使用。
- 支持(在 GitHub 和社交网络上回答)。
- 宣传它,让全世界都知道它,你不是在销售任何东西,而是在试图让全世界知道你已经为他们的问题创造了解决方案。
更多,更多,更多……
最初于 2019 年 9 月 4 日发布于 [ https://www.carloscaballero.io/angular-fontawesome-in-only-5-steps/ )。
文章来源:https://dev.to/carlillo/how-to-reach-your-goals-1000-github-stars-in-the-first-open-source-software-337h