39?1705884565

【功能】 开题思考--(开源生态系统----Rails) 正常


张洋添加于 2016-02-23 11:54

2016年2月25日:


针对余跃师兄的建议,我将重点放在那些实际用rails做框架的项目上,今天我利用rubygems.org(托管所有gem的网站),通过它的API可以获取每个gem的信息(gem的owner、gem的托管地址等),其中有3291个gem的代码是托管在github上的(其中就包括rails),通过gem里的dependency信息(这里我只考虑了Devdep,即只考虑开发需要的dependency,没有考虑运行的dependency),可以构建github上的ruby项目网络(1563个节点,2910条边):

image

但该网络依赖rails开发的项目较少,只有46个,但依赖rspec开发的项目(上图蓝色点)有906个,目前我只是初步的构建,还需要进一步探索




2016年2月24日:


这两天我利用GHTorrent最新数据(dump-2016-2-1),分析了Rails生态系统相关内容,得到了一些实验结果,希望可以和老师、师兄们一起讨论:


1. Rails生态系统的构建:

假定认为项目(repo)的name或者description含有“ruby on rails”,说明该repo和Rails相关,通过筛选得到69243个repo,其中9075个项目是从Rails fork出来的。


通过对这些项目的语言统计,如下图(项目数前20的语言),78.5%的项目语言是ruby,前几基本上是网络相关的语言,符合常识。


接下来,我对这些Rails生态系统里的项目进行了学习,发现大致可以分为以下几类:

(1)fork出去的项目,forked from Rails: 9075 (13.2%)

(2)Rails提供的demo,Rails demo(demo_app/first_app/sample_app): 29380(42.4%)

(3)课程学习,Course:1127(1.6%)

(4)为Rails服务的插件等,for Ruby on Rails: 11226 (16.2%)

(5)基于Rails构建的系统等,built with Ruby on Rails: 2184 (3.2%)

(6)其他类型,others:16188 (23.4%)


2、进一步挖掘:

基于上面形成的Rails生态系统,我试图了解,这些衍生出来的项目是否对Rails项目自身产生贡献,这其中的贡献汇聚是怎样的,我目前试图从开发者的角度进行切入,分析其他开发者(非Rails成员)从接触Rails建立Rails相关项目,到真正为Rails项目做贡献过程中蕴含的规律。目前探讨以下三个问题:

(1)其他开发者关注(watch)Rails与自己使用Rails(建立Rails相关项目)的关系?

目前Rails共有31332个关注,除去自己的成员,有6824(21.8%)个关注来自Rails生态系统里的项目owner,其中:


5711(83.7%)个开发者是在watch了Rails之后才建立Rails相关项目,平均时间是21.8个月;

1113(16.3%)个开发者是在watch了Rails之前就建立Rails相关项目,平均时间是11.0个月。


说明,大部分的开发者应该是先关注Rails这个项目,熟悉后才自己尝试建立项目,平均要花近2年的时间,少部分是自己先建立项目,然后再关注Rails(可能自己建的项目有问题,所以很快关注Rails,时间也短许多)。


(2)其他开发者在Rails中评论与自己建立Rails项目的关系?

Rails中comment(这里我先只考虑了issue comment)共有107812个,其中4237(4%)个来自Rails生态系统的项目owner,其中:


1429(34%)个开发者是在Rails评论之后才建立了Rails相关项目,平均时间是11.5个月;

2808(66%)个开发者是在Rails评论之前就建立了Rails相关项目,平均时间是11.6个月;


说明大部分的开发者可能是建立了Rails项目,熟悉之后才开始参与Rails项目中去,平均需要1年。


(3)其他开发者在Rails中提交issue与自己建立Rails项目的关系?

Rails共有24107个issue(包含pull-requests),2734(11.3%)个来自Rails生态系统项目的owner,其中:


852(31%)个开发者是在Rails提交了issue后才建立Rails项目,平均时间是10.5个月;

1891(69%)个开发者是在Rails提交了issue前就建立Rails项目,平均时间是10.0个月。


说明大部分的开发者也是先建立Rails项目进行学习,熟悉后才向Rails做贡献。


总结:

我初步的思路是,Rails生态系统里的项目owner,他们建立了Rails相关的项目(相当于是Rails的扩散),他们在使用或学习过程中,可能会反过来作用于Rails,向Rails做贡献(关注,评论,提交issue,提交代码等),这就形成了贡献的汇聚。


目前分析结果和常识差不多,即大部分的开发者(非Rails成员)应该是先关注Rails这个项目,一段时间后才自己建立Rails相关项目,再过一段时间才向Rails做贡献。


这只是我初步探索的一些实验结果,希望可以和老师、师兄们讨论下,再进行下一步。






2016年2月23日:


Ruby on Rails项目正在形成属于自己的Rails生态系统,它不仅拥有很多子项目,很多其他项目也基于Rails进行开发,例如Basecamp、github。除了github上形成的Rails网络,它在Stackoverflow上也拥有着大量的问答帖子信息。


目前的工作重点是,先尽快以Rails生态系统为研究对象,构造出其基本的生态网络,在此基础上结合已有的工作,争取尽快形成开题的完整思路。

回复(12)
  • 39?1705884565
    张洋 8年前

    尹 刚 写到:
    rspec是ruby测试框架,应该基本可以判断这些项目是ruby语言的,但是不是基于rails,你再看看。应该是基于rails的。因为rails推出之前,ruby并不流行
    老师,这里我通过rubygems网站提取的,都是ruby语言开发的,我再进一步分析下,看是不是rails的

  • 39?1705884565
    张洋 8年前

    尹 刚 写到:
    rspec是ruby测试框架,应该基本可以判断这些项目是ruby语言的,但是不是基于rails,你再看看。应该是基于rails的。因为rails推出之前,ruby并不流行
    是的,它是ruby的测试插件

  • 39?1705884565
    张洋 8年前

    余 跃 写到:
    rspec是ruby的测试框架。。如果我没记错的话
    是的,它是ruby的测试插件

  • 5?1460204756
    尹刚 8年前

    rspec是ruby测试框架,应该基本可以判断这些项目是ruby语言的,但是不是基于rails,你再看看。应该是基于rails的。因为rails推出之前,ruby并不流行

  • 10?1449542945
    余跃 8年前

    rspec是ruby的测试框架。。如果我没记错的话

  • 39?1705884565
    张洋 8年前

    描述 已更新。 (查看差别)

  • 5?1460204756
    尹刚 8年前

    余跃的建议很重要啊!

  • 10?1449542945
    余跃 8年前

    有点意思。。

    这种方法找到的项目,缺少了很大一部分那种用rails框架做应用的程序,你现在只有3.2%。

  • 39?1705884565
    张洋 8年前

    描述 已更新。 (查看差别)

  • 39?1705884565
    张洋 8年前

    描述 已更新。 (查看差别)

  • 39?1705884565
    张洋 8年前

    描述 已更新。 (查看差别)

  • 39?1705884565
    张洋 8年前

    描述 已更新。 (查看差别)

0?1470885445
登录后可添加回复
  • 当前状态 新增
  • 选定优先级 正常
  • 指派给 张洋
  • 里程碑 --
  • 开始日期 2016-02-23
  • 结束日期
  • 预计工时(H) 0.00 小时
  • 完成度 0%
  • 关联Commit

© Copyright 2007~2021 国防科技大学Trustie团队 & IntelliDE 湘ICP备 17009477号

问题和建议
还能输入50个字符 提交

加入QQ群

关注微信APP


×