中国有句俗话,叫做“酒香不怕巷子深”,大概就是“是金子总会发光”这种意思,不过在如今浩瀚如烟的开源项目里面,即使真的是金子,也不见得会发光。所以有时候一个好的推广手段是很必要的。
作为程序员,自己整了点开源东西,心里面谁不想大家都知道,都去用用,毕竟用的人越多,关注的人越多,自己的成就感可能越大。可是在这么多开源项目里面,为啥别人会关注你的?尤其是在Github上面,一大堆的项目,你的如何脱颖而出?
关于如何推广自己的开源项目,我尝试搜索了很多,但是没发现什么特别行之有效的方法,没准我得去学学SEO这些的。下面就来扯扯我的不成功的推广经历。
首先,你得有自我感觉能拿得出手的东西,我在github写了一大堆开源项目,但自己也知道,能拿的出手的也就那么几个,这里列出来几个自我觉得不错的东西,打打广告:
- LedisDB,一个高性能的NoSQL,类似Redis,主要为了解决Redis内存不足的问题而开发,现在github上面已经有超过400个stars(大多是僵尸粉),貌似还行。
- Mixer,一个用Go写的Mysql Proxy,支持基本语句的路由,目标很远大,路程很遥远。
- MoonMQ,一个用Go写的消息队列,这货能被20多个人star真出乎我意料。
- Libtnet,一个用C++写的高性能网络库,接口类似Python的Tornado,这货我以前费力宣传,但是收效甚微。
如果只是拿得出手,你看我轻易的列出来几个,但是更重要的一点,你这个东西得对人有用,得让人用起来,不然其他人凭什么关注你的东西。如果按照这个标准,貌似就剩LedisDB和Libtnet了。(LedisDB主要我们公司在使用,Libtnet被一家游戏公司在用,只要那公司技术负责人没骗我的话)
好吧,现在我还剩两个项目,如何宣传?Libtnet已经稳定了,我很久没有更新,以前写了很多文章都没啥大的反应,所以果断忽略。好吧,到最后,就剩一个LedisDB了。
既然要宣传,我就面临一个问题,在哪里宣传?国外有Reddit,有HackNews,还有Go Group等很多渠道,国内有CSDN,有OsChina这些的。作为一个中国人,当然自豪的先用国产的渠道呀,然后就没有然后了,不过OsChina还是非常不错的,这里赞一个。
于是我开始尝试直接在国外推广,在Go Group上面发了贴,在Reddit上面冒个泡,然后竟然发现还真有老外来关注了,而且有些人还在issues里面提出了很多需要改进的东西,有些人还帮我推广,顿时让我有了哇塞,就应该是这种效果的感觉。
一个开源程序,我觉得海外是需要重点关注的,顺便还能帮带提高英文水平。并不是说国内的环境不好,只是鉴于我的实际情况(没准我做的东西国内偏冷门,或者别人看起来是个山寨货)而得出的结论。
如果只是宣传还不够呀,还的有点干货的介绍才行,不然怎么让别人快速的了解你的东西是干啥的。好吧,我的英文太差,所以开始只能用中文在CSDN上面写Blog,写了几篇,我觉得还是停掉得了,文笔太差,与其练练文笔,还不如在练英语的基础上面去国外写Blog算了,Medium是一个很不错的选择。
好了,项目开始有人关注了,如何扩大影响呢?这个我还真没想好,只是觉得首先需要在issues上面做好姿态,别人问的东西好好的回复。于是乎我开始跟一些国外程序员深入交流,然后他们在交流的同时@了另一些人一起讨论,然后我的项目就又多了不少关注,貌似还有几个真的是大牛级别的人来了。不过跟国外程序员交流有一个很严重的时差问题,我经常性深夜跟他们讨论,累死了。
总之,折腾了这么久,LedisDB也稍微有了点stars,只是到最后,我忽然发现,要那么多的stars干啥,真的对你项目感兴趣的人,自然会跟你一起推动项目的前进,但是如果你不首先推广出去,又怎么可能找到发现那些对你项目感兴趣的人呢?怎么变成“先有鸡还是先有蛋”的哲学问题呢?
突然忘记了,还有一个很重要的地方,作为一个要推广的开源项目,主页是需要的吧,于是我在Godaddy上面买了域名,要我一个设计师的盆友帮我弄了个Logo,在让跟我们混得一个才毕业的小伙子用Bootstrap帮我弄个网页(赤裸裸地压榨呀),然后部署到Github上面,然后官网就有了,这里http://ledisdb.com,虽然不是特别高大上,但有总比没有强。
最后,在推广一下我的LedisDB,一个高性能NoSQL。
官网:http://ledisdb.com
项目主页:https://github.com/siddontang/ledisdb