程序员如何经营自己的开源项目

  作为一名程序员,对开源项目一定不会陌生。不管是前端后端,搞数据的还是做中间件的,或多或少都会用到一些开源项目。但是只有少部分程序员会参与开源项目开发。有些人会觉得,使用别人现成的开源项目就够了,也有些人认为开源项目都很高大上,与自己无关。但我觉得作为程序员,经营自己的开源项目是十分有必要也是受益无穷的。
 
  
 
  这其中主要有以下几点益处。
 
  首先,每一个开源项目都是为了解决某一个问题而存在的。有的可能很细微,细微到只是提供手机上的某一个特定的视觉控件。有的就很庞大,比如着名的Hadoop,为解决大数据方案立下了汗马功劳。但是他们都提供了自己的价值,使人们省却了自己开发这些项目的成本。就好像造汽车,别人已经把轮子造好了,我们需要做的仅仅是把轮子拿过来安到车上就够了。
 
  而对于我们程序员自身来说,开发一个开源项目能够帮助我们练习系统架构,实践自己平时学到的或者想到的一些开发思路,提高我们的开发能力。比如我最近看了《Java设计模式》一书,我就能把其中的设计模式用到我的开源项目中来。在我们的实际工作中,可能由于各种局限性,我们无法使用这些思路。但是在自主设计开发的开源项目中我们完全可以放开自己的思维,让代码在思想的草原上策马奔腾。
 
  与人交流,取长补短往往能够让人快速提升。闭门造车对于程序员来说尤其要不得。开发是一项思维要求较高的工作。与人交流能够让自己的思路多样化,而不仅仅局限于自己的几种解决方案。在现实世界,可能身边并没有太多可以与自己交流的人。但是在开源世界汇聚了全世界最优秀的程序员、开发者。通过开源项目与全世界的程序员交流合作,能够让我们始终处于世界前沿,赶在时代潮流。
 
  开源项目能够提升我们自身的品牌价值。不要说作为程序员只要有真才实学就够了,当然真才实学很重要,但是如果外表光鲜,让你在众人群中能够一下子脱颖而出,又何乐而不为呢。而开源项目,恰恰是提升我们自身品牌价值的重要途径之一。比如你去求职,如果能够提供几个在Github上star数上千的开源项目,我想面试官肯定会对你刮目相看。
 
  那么该如何开发一个开源项目呢。
 
  首先是选题。对于作家来说,创作来源于生活又高于生活。而对于我们程序员,我们平时的开发工作,是我们开源项目的重要来源。平时开发中遇到了什么问题,是否能够开发一个项目解决这一问题?有哪些模块可以抽象出来满足大多数项目的需求?另外一个来源就是真实的生活需求。开发一款小软件满足日常生活中的某一特定的需求供大家使用,赚点人气,也许还能收获打赏。比如过年的时候很火的微信抢红吧插件就在Github上有开源。还有一个来源就是最近开发界的前沿风潮,最近程序界流行什么,有什么新东西,是否能够根据这些新东西去写一些开源项目?比如去年直至今年初都很火的ReactiveX,就有一大波RxCache、RxAndroid等开源项目因此应运而生。
 
  然后确定完选题之后,就要真正进入开发工作了。对于我们程序员来说,加班往往很常见,晚上加班,甚至周末加班。下班时间准时回去好像也成为了很不正常的事情。所以能够让我们能够自由支配的时间其实是比较少的,挤出时间来做开源项目其实挺困难的。毕竟我们还有自己的生活,年轻人还需要谈恋爱。所以学一学时间管理很重要,上班时间抓紧把事情做好,每天晚上都抽出固定时间来做项目开发。我想所以事情都怕坚持,只要持之以恒,没有事情是完不成的(有种说大话的感觉,大家还是看看时间管理吧)。
 
  当然除了坚持,也要做好计划。没有事情是一蹴而就的。如果你设想的项目功能很复杂,那就试试迭代开发,先实现一个简单版本,实现核心功能,发布到开源社区,然后根据用户反馈和自己的使用情况完善项目设计方案。这是现在很多软件开发都会使用的方案,我们当然也可以用到我们的开源项目中来。
 
  最后项目写完了。怎样才能让我们开发的项目广而告之呢?如果没人用,我想也就失去了开源的意义所在。
 
  首先,你得给自己的开源项目建个门面。不要说程序好就行了,在这个社会上,脸还是很重要的。最简单的就是写一篇博客介绍你的开源项目。如果做的好一点还可以专门为你的项目建立一个网站。切记不要把你的博客发在CSDN或者博客园上,因为界面设计实在是还停留在10年以前,这里并没有黑的意思。可以考虑简书,或者自己的个人博客。
 
  有了门面之后,就是要让它敞开大门接客了。现在的社交网络那么发达,我们可以使用各个社交工具的力量,在微博上艾特一些开源界的红人,比如代码家、脉脉不得语。将博客分享到微信朋友圈,或者发布到一些程序员社区中,比如代码家的Gank.io,稀土掘金等(其实这并不是一篇软文,真的),都是不错的选择。
 
  这样以后,如果Star数有几百了,并且陆续有些issue了,就说明你的开源项目已经有人使用了。但是这时候还不能弹冠相庆。Issue说明你的项目还存在着一些问题,需要对这些issue进行及时的反馈和更新,让使用者更有信心。然后就是根据用户反馈的问题和bug及时更新,不断发布新版本,让你的项目保持长久的活力。
 
  以前听过一则笑话,说程序员产生矛盾了怎么办,到Github上代码pk吧。啥,你不会用git,那你还写个啥代码。最后,祝愿大家都能写出star数破千的开源项目。

 

返回列表