代码改变世界

谈谈去那里找开源项目

2011-12-20 19:13  youxiachai  阅读(11570)  评论(13编辑  收藏  举报

前言

     什么时候开始接触开源这个词呢?貌似,是某老师一直有提,但是,一直没有教我们如何参与开源项目,哎..估计大学老师都这样子了.后来,学习如何使用cvs,svn,git,mercurial等等工具以后,终于,了解开源项目的整个管理以及参与的流程,走了不少弯路,不过,弄懂了还算不错.在我学会使用版本控制器以及,那些网站提供开源服务,还有那些开源的项目如何下载的时候,曾经尝试过在学校开展一下开源项目活动,利用code google 进行代码的管理,google小组进行讨论,gmail进行交流,可惜的是,到最后,大家连个svn都用不好,最后,不了了之.我后来思考了一下,造成这样的原因,首先,大家对于新鲜事物的接受能力不强,他们对于协同工作的理解是用U盘把代码拷来拷去方便直接.不愿意学习什么是版本号,什么是版本分支,什么是合并,以及如何解决代码冲突,觉得还不如用U盘直接拷代码来得方便.其次,就是老师,连老师都不会赖得教版本管理,也就只有等我们出去工作的时候才知道有这么一样东西,白白浪费了最重要大学那几年学习开源项目的黄金时间.

寻找开源项目

   一般而言,我们都是在我们使用某技术以后一段时间,才发现原来是开源的,然后,才去下载.有些开源软件有自己搭建的服务器,不过,对于,大部分开源项目都是使用专门的托管网站进行管理.所以,高效的寻找那些开源项目,了解有那些项目托管网站就非常必须

Code Google

  支持的版本控制器   使用友好度
SVN Git Mercurial  
支持 支持 支持 ★★★★★

在这么多的项目托管网站中,我个人感觉,code google是最简单,首先,它提供的丰富齐全的帮助文档,不但如此,这些帮助文档很多都有相应的中文版本,对于,那些初次接触同学来讲,实在是一个很好的学习机会,不过,有一点值得注意的是,在正常的渠道下,你是永远都获取不到项目的密码,这点,我相信学编程都知道,除了密码这点,其它都可以无障碍使用.

Souceforge

  支持的版本控制器   使用友好度
SVN Git Mercurial  
支持 支持 支持 ★★

对于,Souceforge历史,我不是很理解,只是接触的很多开源项目都使用Souceforge进行托管,Souceforge的使用相对于code google就有点复杂了,而且,文档全是英语,对于英语苦手而言实在有些难度.

Github

  支持的版本控制器   使用友好度
SVN Git Mercurial  
不支持 支持 不支持

很多知名的开源的软件都使用了Github进行托管,免费账号提供300m.不过,个人对于git不是很熟悉,就不做过多的评价.

 CodePlex

  支持的版本控制器   使用友好度
SVN Git Mercurial  
支持 不支持 支持 ★★★

微软旗下的一个项目托管网站,文档依然只有英语,不过MSDN有某些项目中文的介绍,微软的项目偏多,学习微软那些技术的同学必去的一个项目托管网站.

Codeproject

  支持的版本控制器   使用友好度
SVN Git Mercurial  
不支持 不支持 不支持

看了一下,算不上一个传统意义上的项目托管网站,因为,我注册了一个号找了很久,到找不到一个新建项目的选项,里面的开源项目的代码也找不到一个用版本控制器下载的链接.我就姑且把这个网站定位为一个用项目来进行广泛讨论的网站,因为,这个网站,更多的是讨论,还是讨论,例外还有一些教程,可以说得上是一个很好的学习网站.额外说一下.这个网站的讨论区,还提供了中国版块…

怎么都是些国外的?其实,我们中国也有类似的托管网站,例如淘宝的淘蝌蚪,盛大的Teamhost,不过,鉴于上面的项目还比较少,所有就不做过多介绍.

最后,知道有这些网站以后,还怕没有优秀的开源项目学习吗?

知道这些网站以后,你还需要一款专门的软件.

如果你是使用eclipse的可以参考我收集的eclipse下这些项目控制器的相应的插件

http://www.cnblogs.com/youxilua/archive/2011/09/27/2192913.html

 

 

 

闲聊一下版本控制器

  对于版本控制器的使用,都可以用来写书了,网上这部分教程也很多,这里就不做过多的介绍,下面说下我的感想.

  版本控制器可谓是入门容易,使用难,精通更是难上难.版本控制的入门,就是知道如何使用这个工具进行下载,相信这点会软件操作都会使用.但是,使用起来就有点考究了.这里的使用,是利用版本控制器,进行项目托管.如果,你是几个人开发一个软件,不想用U盘直接把代码拷来拷去这样的开发,就需要懂的用版本控制器,进行代码的管理.版本控制器的难用的地方,就在于几个人同时修改了一段代码,以及,其他人更新的时候,旧代码与新代码发生冲突等等各种蛋疼的问题,往往让一些经验不是很丰富的同学,直接放弃学习版本控制器,重新使用u盘拷来拷去.至于精通,那就是要学会如何使用各种托管网站的服务,利用这些服务,进行代码的改错,bug的追踪等等,当然,学会本地搭建服务器也是必备的技能.