前情提要
2017年十一假期时闲来无事搞点事情,花了一上午时间做了一个intelliJ插件Rainbow Brackets,这是一个为嵌套的多层括号着色的插件,能够让代码更易读、更容易发现错误。当天下午就发了第一个release版本,到今天正好四年整。本文主要是回顾这个开源项目至今的成就&总结运营开源项目经验。
成就篇
-
Github stars: 3600+
-
commits: 800+
-
Feature requests: 54
-
Releases: 91
-
支持编程语言: 30+(几乎所有的主流语言都支持)
-
支持IDE: Jetbrains全系(除了CodeWithMe Client) + Android Studio + HUAWEI DevEco Studio
-
下载量: 560万+
-
评分: 4.9(满分五分) 评价146次
-
第三方插件下载量排名: 8
-
接受捐赠:$4000+ 微信&支付宝的收款统计功能不大好用,毛毛估¥1000以内
-
捐赠人数: 60+ (微信&支付宝未统计在内)
-
Project Sponsor: 2(Tabnine/Codota & Codestream), 两位sponsor合计捐赠约$3000
-
被Jetbrains twitter推荐:8次+
运营篇
有了上述的成就,再来展开下如何维护并运营好一个开源项目
“开源”不仅仅是一个public github repository
我认为最基本的要求应该包括更多但不限于:
-
应该尽可能使用英文而不是中文(如果你不是只想要中文用户的话)
-
要有README,好让别人知道这是一个什么项目
-
合适的license(比如Apache License等)
-
正式的release发布(比如发布到maven central等官方仓库),同时应该有release change log
-
版本号约定(比如follow广受认可的Semantic Versioning),其中隐含了向前、向后兼容性保证和bug修复等语义
-
CI
-
issue/pull request管理,回答问题、review代码等
更重要的是…
-
能够解决真实世界的问题。能够解决问题是最基本、最重要的价值,这样才会有意义,才能吸引用户
-
高质量的实现。包括但不限于:
- 实现有无bug
- 尽量少的依赖
- 清晰的API定义
- 易于扩展的接口设计
- 测试覆盖
- 等
-
构建自己的社区
- 及时回复issue、pull request,或者帮助用户解决问题
- 透明,作出决定时解释缘由(比如为什么我们要加这个功能或者为什么不加这个功能)
- 文档(again)
-
广而告之(不是指Google ads那种广告,而是通过SEO(Search Engine Optimization)的手段让其他人更容易找到),这里就有几个方式:
-
捐赠
项目刚开始时是可能是因为好玩、感兴趣、自己要用等等原因,大多数这些都是短时间的。过了起步阶段之后能持续维护可能是因为好评、用户、下载等指标带来的成就感。当项目逐渐稳定后,可能更多的是要修复一些边边角角的bug,甚至可能是我用不到的功能的bug。这时可能就会变得枯燥乏味,用爱发电就不可持续了。想要更长期的维护好一个项目,我认为要么需要有其他的contributor进来一起维护项目,要么就得有捐赠来让维护者更有动力继续。捐赠的钱不必很多,更多的是对业余时间的一些小小补偿,买个啤酒、咖啡、吃顿饭之类。
-
明确定位
项目逐渐开始做大之后,多少会有一些feature request。有些可能比较make sense,有些可能多少沾点边,有些可能比较偏。如果你不想做一个万能工具箱的话,就需要拒绝一些feature request了,而不是统统接受,保持定位清晰也有助于其他人快速知道该项目的价值。当然一些很有价值的feature request或者想法可以积极采纳或者寻求社区的contribution(如果你精力有限)。
懂得了以上的策略并不代表你的开源项目能够成功
开源社区只会锦上添花而不会雪中送炭,绝大部分项目都默默无闻。不要想着放一个半成品到github就会有用户或者有人贡献代码(除非你的作品非同一般,完全没有替代品),我的经验看来绝大部分人都是伸手党,能够正确报bug的人都很少,更不必谈给你贡献代码了。但是当项目做大就不一样了,当功能逐渐完整,有了用户群体,就会有人来解决力所能及的问题。孤军奋战才是更加真实的写照
最后
不要把敏感信息提交到公共GitHub!
本文主要参考自本人的经验,尽管在完成此文前已经尽力回想了一些技巧,但很有可能仍有疏漏,并且这些技巧也不能保证项目一定成功。
Original link:https://izhangzhihao.github.io//2021/10/04/Intellij-rainbow-brackets四周年回顾/