一年2k+ star -- GitHub生存之道

前言

  1. 本文的实例来自GuiLite项目,阅读本文之前,您可以先浏览一下这个项目的readme,然后默默的作一个选择,你会选择“star”吗?
  2. 一个国产的GitHub项目,star会容易来自海外开发者,还是中国开发者?
  3. 健康的star数量是平滑增长,还是暴涨?
  4. 有没有什么捷径,可以让项目star短期暴涨?

激情的闭门造车

随着智能手机的兴起,有感于Android手机上炫酷的滑动效果,如果能将这种UI效果进行优化,将其运行在Windows平台和资源有限的Linux嵌入式平台,是不是很有趣呢?
为了提升UI的心动效果,选择了“心电图”这个主题来展示UI框架的能力。经过一段时间的撸码,程序顺利运行在Windows,Linux(树莓派)上;虽效率喜人,但依然感觉效果单薄,跟时下兴起的VR潮流比,还是略显寒酸;所以,为了能借VR的东风,专门适配了Windows UWP版本,这样程序就可以运行VR环境。
最后,就是制作VR宣传片了,再配上摄人心魄的音乐,“导演”对该片大卖非常有信心。好吧,说了那么多,也不如大家亲眼看一下视频,链接如下:
1. I am GuiLite
2. 3D GuiLite(这是后期制作的,一并放在这里供大家参考)
此时的star数是:1(自己无耻的投了自己一票:)

知乎“怼问”事件

随着宣传片在各大QQ群的投放,感觉好评如潮;但star并没有明显增长,其实这也正常,热闹的QQ群每天要讨论很多问题,再好的视频也如过眼流星一样,虽然能让人眼前一亮,但很难有机会慢慢品味。如果专门有一个讨论该视频的平台就好了。。。于是就在知乎上发了一个讨论这个VR宣传片的问题。但千错万错不应该怼“Qt”,Qt又招谁惹谁了,为啥把别人也带上呢?再次向“Qt”道歉!
“怼问”后的一个周末,逛街途中,收到近10个入群申请(为UI框架建立的开发群),再看看视频播放量达到了2K+,再看看知乎,已经获得了很多回复,不过80%都是负面的,仔细阅读这些批评,我感觉知乎不愧是一个专业人士的平台,很多批评都指出了GuiLite发展方向模糊的问题。
通过这次“怼问”,让我客观的认识到很多问题:在生活水平大大改善的今天,全国依然有10亿人没有坐过飞机;有5亿人没有用过马桶;在网上到处批评主流UI框架的今天,当你感觉它们都是昨日黄花的时候,当你打算对它们临门一脚的时候,才发现它们的粉丝圈是牢不可破的,多年经营的软件生态更是强大无比。甚至,我的知乎账号也马上被“永久禁言”了。
但对开源项目而言,这并不全是负面的;随着开发群人数的增加,大家激烈讨论了GuiLite的定位,确立了更加开放的发展方向:

  1. 能够跟Qt,MFC,Winforms这些主流UI框架协同运行
  2. 需要适配iOS,macOS
  3. GuiLite不是通用UI框架,而是让开发者易于根据自身业务特点,自由定制,扩展的基础
  4. GuiLiteSamples应该有更丰富,更简单的实例
  5. 加入开源中国社区
  6. 增加说明文档

此时的star数为100+

营造“有声”&“无声”社区

看了Naomi Wu(国内著名开源硬件倡导者)对开源方向的讲解,深深感到“社区”是开源项目的生命。开发者QQ群就是一个“有声”社区,一般入群的同学都是阅读完Readme后,发现编译问题后,加入该群的。所以,初期都是在应付各种编译问题,譬如:VS2012编译不过,Linux链接错误。。。这让我们再一次认识到readme文档的重要性,作为开源软件项目,如果不能编译运行通过,会极大的损害开发者的耐心。必须再次改造readme的结构,突出对编译/运行的指导,确保开发者有个丝滑顺畅的开始。

随着在“开源中国”上安家,GuiLite又得到了更多的曝光机会,此时的Readme已经进化得比较好了,很容易得到开发者的star。

此时Github,Gitee上的star数均为300+

似乎,一切都很顺利,群里偶尔也非常热闹(因为只专注技术讨论,群里面基本没有什么闲话)。但这还远远不够,因为还缺乏有效可靠的数据,譬如:

  1. GuiLite库一天的编译次数
  2. GuiLite实例一天的编译次数
  3. GuiLite(及实例)在Windows/Linux/Mac平台的编译次数

这些数据对开源项目很重要,一方面可以了解自己的活跃度,另一方面在指出了大家关心的地方,和真正应该改善的方向。它们能够鉴别出“嘴上说不要,身体很诚实”的需求。所以,我们还用代码构建了这个“无声”社区,默默的统计着开发者的每一次编译活动:

无声社区

“不起眼”的单片机

随着统计的继续,我们发现了一个重大需求:“适配单片机”(特别是STM32系列)。这是对GuiLite的3大挑战:

  1. GuiLite是否足够清凉到单片机级别 -- 再次挑战代码,在代码中解决这个问题
  2. 如何在小尺寸屏幕上制作一个亮眼的demo -- 向Javascript请教,选择了视觉效果比较好的“粒子效应”
  3. 在哪里找硬件板子? -- 感谢开发群同学提供了硬件板卡,和远程调试

MCU

大家均反应这个效果不错,于是在hacker new上面发了一句话(只允许写一句话):Crazy MCU配上GuiLite的GitHub链接。随后两天便成了GitHub trending排行榜的第一名,2周后,Github star数均为2k+, Gitee为700+。

捷径

写到这里,可以总结全文了。
star数的增加是突发性的,每当你的软件发生重大突破时,star数才有突发增长的动力;所以,你的开源项目需要有可持续性,积极跟当前的新技术接轨,只有让自己的小项目加入到科技发展的洪流中,才能找到新的增长点;
star暴涨到2k+的过程发生在中国农历新年,star的主要贡献者是国外开发者。国外开发者在GitHub上是大多数,因此,英文的readme必不可少!代码可以错,readme不能错;代码可以瑕疵,readme则要尽量完美;

star暴涨的捷径,往往取决于你的选择,这是我觉得比较好的选择:

  1. 如果你的项目贴近大众生活,或者跟代码没什么关系,会更容易被大众接受,star会有很好的增长;
  2. 如果你的项目开发语言是javascript,那么会有更多的关注者,C/C++已经不是主流了,开发者数量也相对少很多;
  3. 如果你的C/C++项目能向javascript一样,易于编译,运行,你会留住很多开发者,否则,你会打击很多开发者的自信心;

路在何方

最后,star并不是开源项目的意义所在,据说还有在淘宝上花钱买star的买卖;千万不要为了star而作开源项目!GitHub是一个让你分享技能,思想的地方,如何让你的技能,思想促进社会,科技的进步,才是被开发者尊重的基础。

没有更多推荐了,返回首页