如何架构基于 Ruby on Rails 网站的实时消息系统

Python012

如何架构基于 Ruby on Rails 网站的实时消息系统,第1张

著名微博客网站Twiter,在经历了两年的性能问题后,决定计划放弃Ruby on Rails,不再使用ROR作为自己的网站框架,有可能使用PHP或者Java重写。Twiter前首席架构师Blaine Cook说扩展Rails是非常容易的,但是问题并没有那么容易解决。当Twiter增加了的大量用户后,连续三天出现了性能问题。这是否意味着Java是一个比Rails更能胜任高扩展性需求的平台?即使真是这样,对于小规模的应用来说,Ruby on Rails的优雅比Java的性能更吸引人。他们说这次改动使他们能够适应未来几个月搜索功能快速的迭代修改。伴随这个消息的事情还有Twitter扩招了25跟新员工, 这似乎也在表明对于相同的程序,Java比Ruby的可维护性更高——至少是在程序量巨大和团队规模很大的时候。这似乎也能表明跟他们最初时候着眼的问题 相比,他们现在关心的是系统的可维修性设计。但对于小开发团队和小规模程序来说,Ruby on Rails仍然是不二选择。

Ruby on Rails其实是一套以Ruby程式语言开发的网页应用程式架构。Ruby是由日本人松本行弘於1995年发布的一套程式语言,特色是完全物件导向、灵活有弹性、有丰富的程式库、简单易读的语法,还有各种小诀窍能够让程式码更简短。

而Ruby on Rails是由37 Signals的David Heinemeier Hansson在开发BaseCamp线上专案管理软体时,因为对既有的框架不满意,而为资料库网站开发量身定做出来的架构。Ruby on Rails於2004年7月时以开放原始码的方式发布,很快的就得到广大的回响。在Windows, Mac, Linux上都能够运作,资料库与Web Server的选择性也很多。

Ruby on Rails的观念在於利用惯例优於组态(convention over configuration),软体精简(less software)与越快越有生产力(programmer happiness ultimately leads to better productivity)。

Ruby on Rails是完全的Model-View-Control架构,资料库、程式逻辑与呈现完全清楚的分离。在档案名称与目录结构方面,也都定义的很清楚。资料库这部份(Active Record)是Ruby on Rails最强大的功能,只要设定好资料库连结,之后建立、调整Schema或是其他存取都是直接由Ruby on Rails去控制,不用由我们亲手去动资料库,资料库里的栏位也能和Ruby on Rails里的变数直接对应,不用再像用php的时候,和SQL语法一大堆冒号、引号奋战。另一个可以加快速度的特点在於自动产生使用者界面的程式码(scaffold功能),这代表我们只要把定义好资料库和要作的动作,Ruby on Rails就会为我们产生使用者界面,我们只要专注在真正要解决的问题上,而不用花太多时间在建立使用者界面上。

在测试方面也是Ruby on Rails的强项,它可以为我们自动建立测试档案及资料库,加速测试流程,确保程式品质。

不过它能带来的好处,还是要亲自试试看才知道!下一篇在和大家介绍怎麼用最简单的方式在Mac OS X建立Ruby on Rails的开发环境。

Ruby on Rail中文网站

http://rubyonrails.org.tw/

PS: 官方网站上的影片范例很精彩,15分钟就能开发一个部落格系统、5分钟就写好一个Flickr Mashup。

-----------------------------------------

一定要单独问,rail应该是支架的意思吧。不过不是很适合这样单独翻了。