Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4261832
  • 博文数量: 601
  • 博客积分: 15410
  • 博客等级: 上将
  • 技术积分: 6884
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-16 08:11
个人简介

独学而无友,则孤陋而寡闻!

文章分类

全部博文(601)

文章存档

2020年(1)

2018年(4)

2017年(7)

2016年(42)

2015年(25)

2014年(15)

2013年(36)

2012年(46)

2011年(117)

2010年(148)

2009年(82)

2008年(37)

2007年(41)

分类:

2010-04-14 22:52:54

1、数据库:
  (1)数据库类型:claroline只支持mysql,moodle可以支持多种数据库。claroline不需要考虑太多的事情,只需要考虑怎么样优化mysql,所以在数据库操作上要占一些优势。
  (2)数据库分表:claroline为了加快查询,所以为每一个课程建了一组表(1.9版大约50个表)。而Moodle所有的课程,所有的资源都集中在那几个固定数据表中,这就造成了数据量大的时候,访问性能会降低!Claroline从基础的设计开始,就考虑了数据库的垂直和水平分隔,这样在做大型应用的时候性能会更好一些。另外Claroline还可以采用分库的模式,每个课程对应一个数据库,这样更容易实现数据库的分隔。
  但是Claroline的这种模式带来另外一个严重的问题,会造成许多零星的小数据表,如果课程数量一旦多起来,会对单机的数据库服务器带来性能的瓶颈,因为每一个数据表就对应于文件系统的3个文件,如果按2000门课程的规模,则会给文件系统带来近百万个文件,这有时会直接会拖垮整个OS。
  Claroline这种分表模式还带来另外一下毛病,一般不能放到租用空间上,因为它很容易达到数千个数据表的规模,给空间提供商的备份、管理带来很大的问题,所以很容易遭到封杀。
  (3)Moodle已经实现了PDO,不知道为什么还没有应用起来。Claroline的数据库操作比较原始。
  (4)Moodle2.0仅使用mysqli连接,不知道跟rc版有没有关系,虽然性能上会好一点,但有一些系统上没有mysql。

2、权限控制:
  权限控制的整体设计上,两者出奇的相似,同样是基本角色的控制。
  Moodle的权限控制做的很详细,仅数据库方面就动用了十多个表,并且基本上涵盖了每个模块。其中心就是用context表来控制每一个课程中的每一个模块,大多数的源代码中都要或多或少涉及一点context的事情。
  这是一种好的设计,但是在性能上也会带来一定的影响。
  Claroline的目标也跟moodle差不多,想控制每一个工具的使用,但是它没有去想控制每一个页面,比如Claroline对论坛工具的控制,只想控制到允许哪一部分人使用,而不是去控制哪些人可以访问哪些页面。它只用三个表,然后联合工具,来判断哪些课程中哪些工具,仅供哪些人使用。相比于moodle,更有点轻装上阵的感觉,所以性能会更好一些。

3、语言包
  moodle的语言包比较繁琐,要近千个文件,而Claroline只有三个文件而已。在制作中文包方面,moodle绝对是一个体力活,而claroline只有不到三千行的翻译量,几个晚点就可以轻松解决。
  从语言包的使用方面,moodle采取了一个比较好的方案,就是需要哪个部分就去读哪一部分,各部分互不干涉。在用论谈的时候,只需要去读论谈的语言包就可以了,不需要管wiki的语言。而claroline则使用了“全局”一些的方案,把所有的语言都放到一个文件中去,并且用一个全局变量去负责存储这些语言包,这造成了一些内存上的浪费,需要的和不需要的,都一起读出来了。1.9版以后,它还把网站的默认语言放到数据库里了。
  但是也有一个好处,因为所有的语言都有一个变量控制,速度上应该有优势,典型的“以空间换时间”。
  Moodle的方式也有两个坏处:(1)重复翻译,增加了翻译工作量。(2)也许会在某些情况下,老是去读翻译文件,浪费一些文件IO(没仔细去读,不知道具体的情况)。
     gettext的效果还不错,为什么这两个系统都不用它呢?

4、模块
  Claroline模块设置简直就是等于摆设,如果你想给它添加一个功能,那么只好重新做一个全新的工具,想放个钩子,没门!——没有几个人喜欢为了添加一个小的功能就去做一个工具,这是它设计最失败的地方。
  moodle的模块分了很多类,基本上可以渗透到课程中的每一个地方。
  但是Claroline工具(模块)要比moodle清晰,在根目录下一览无余,每个基本的模块也遵循工具的设计原则,代码位置也相对固定,读moodle感觉老是到处跳(也许是不熟悉有关)。

  准备再读moodle的模块代码,然后再向下写……

  正在读代码中,看法会不对,大家前来指正:
阅读(1830) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~