如何发起一个开源项目

最近有朋友问我,想要做一个开源项目,但是不知道做什么好。WebMagic虽然还很小,但是写的过程中总会有些感悟,提出来跟大家分享。

开源要有需求

“创始人”、“作者”这样的光环吸引了不少人,就跟很多人吼着要去“创业”一样,于是大家加入了“重复发明轮子”大潮。最经典的大概算是“Web框架”了。

我不反对大家为了学习自己写写框架,从菜鸟一步步走来嘛,为了考验下自己的能力,大家都可以理解的。这样的项目走远的几率很小,请放平心态,冷静看待,你要的是过程,不是结果。

还有一种是真的想要结果的,想要成为“知名项目创始人”的,我觉得你可以用“创业”的思路去想想这件事。开源项目本质也是一种产品,一种给开发者的产品,所以一样要有需求。你抓住了需求,自然就有了参与者。Web框架有需求吗?我想是有的,但是要么是更特殊的场景,要么是更便捷的使用,要么是更高的性能,如果仅仅想证明“我代码比xxx写得好”,或者“我做了xxx”,我觉得还是趁早收手好。抓不住需求的创业是死路一条,开源项目也不例外。

举个例子,我之前写过一个DNS服务器BlackHole,差不多就是为了提高自己的技术而写的。那段时间每天既写代码,又写博客,提高倒是非常快,但是项目本身积累不多,因为少有需求,所以也少有人参与。现在开发完了,我自己也懒得用了。这个项目对我自己来说是挺好的,但是价值产出就比较小了。

开源请选择熟悉的领域

首先,把日常工作做好。如果日常工作实在不是你喜欢的领域,我觉得倒不如换一个工作,但是请分清什么是真的不喜欢,什么是懒得去工作的借口。

在日常工作中,总会用到一些开源产品,工作中遇到问题,做到求甚解,乃至于深入进去,这样很可能会找到官方也不曾发现的东西,从而反馈官方,这样既做出了贡献,又对日常工作本身也有帮助。而且随着你对这个项目越来越熟悉,你成为核心commiter也并非不可能。这样创造的价值,可能比自己发起一个项目更大。

另一个可能是日常工作中需要的东西,却没有开源产品作为替代,那么你倒是可以自己尝试做一个。你的需求也是别人的需求。《大教堂与集市》里就说过,好的开源项目都是挠到了自己的痒处。WebMagic应该属于此类。WebMagic可能不具有说服力,那么Github上star最高的Bootstrap,或者是Google的MapReduce技术,其实都是来源于工作中的需求,乃至于开发者自己的需求。

开源与工作的关系

很多公司都支持员工参与开源项目,国外的不列了,国内的阿里是代表,其他大公司基本上也是不排斥的。好的公司甚至能申请到资源,组建一个小团队来做这个事情。

当然如果你的项目跟工作关系不大,那么可能会过的难过一点,但是这不是绝对的。比如我日常工作是做Web开发,但是WebMagic是一个爬虫。但是我也会把WebMagic用在日常工作中,例如健康检查、自动化测试、简单的数据采集等地方。

如果老板不满意你做开源,觉得你工作不饱和的话。首先,你确保不在工作时间做。其次,如果这样老板还有意见,我觉得可以考虑换一个老板,因为这样的老板见不得员工发展,对你长期来讲也没什么好处。如果时机不成熟,我觉得还是偷偷做吧,别放Github了,换个名字建私有库吧,http://git.oschina.net/是个不错的选择。

开源贵在坚持

WebMagic从发布第一版到现在已经半年了。最开始功能比较简单,但是慢慢的完善起来。完善的过程中也有很多朋友参与,提出了不错的建议,从而促进产品的演化。

WebMagic开源半年,发布了8个版本,已经有150多个star,差不多一天一个,并且基本是平稳增长。算个不负责任的数,坚持2年,那么能达到700个star,这算是一个中型项目的规模了。但是坚持绝非易事,相信大家都有体会。

记得有人说,在国内做一个项目,如果作者不维护,基本上这个项目也就死掉了。就实际来看也差不多,大家自己感受一下。

拥抱开源社区

Github是个非常不错的平台,但是缺乏对于小项目的推广。WebMagic能有一些用户,得感谢oschina这个社区。oschina关于软件的归类、搜索都很好,PR也挺高,还能将问答、博客和项目关联起来。

经过我这半年的经验,转化率最高的是“投递新闻”,所以大家多多发布版本吧!

转载于:https://my.oschina.net/flashsword/blog/180315

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值