关于Ruby

Python016

关于Ruby,第1张

Ruby on Rails是一个用于编写网络应用程序的框架,它基于计算机软件语言Ruby,给程序开发人员提供强大的框架支持。Ruby on Rails包括两部分内容:Ruby语言和Rails框架。

什么是Ruby?

Ruby 语言是一种动态语言,它与Python、Smalltalk和Perl这3种编程语言有些类似。Ruby语言起源于日本,它的研发者是日本人松本行弘(Matsumoto Yukihiro)。松本行弘在1993年开始着手Ruby语言的研发工作,他开发Ruby语言的初衷是为了提高编程的效率。 1995年12月Matz推出了Ruby的第一个版本Ruby 0.95。

Ruby语言的主要特点如下。

1.纯的面向对象语言

在Ruby中,一切皆是对象。下面举一个例子来更直观地说明Ruby语言的这一特点。

在Java中,求一个数的绝对值的代码如下。

int c = Math.abs(-20)

而在Ruby语言中,一切皆是对象,也就是说“-20”这个数也是一个对象,因此,求一个数绝对值的Ruby代码形式如下。

c = -20.abs

这样的代码编写方式是不是更形象一些呢?

2.解释型脚本语言

Ruby 语言是解释型脚本语言,它既有脚本语言强大的字符串处理能力和正则表达式,又不失解释型语言的动态性。一方面,在最初设计Ruby语言时,Ruby的研发者松本行弘考虑到文字处理方面的需要,他借鉴了Perl语言在文字处理方面的成功经验。另一方面,松本行弘将Ruby语言设定为一种解释型语言,Ruby 的动态性使得由Ruby语言编写的程序不需要事先编译即可直接运行,这为程序的调试带来了方便。同时,这一特点可以实现开发过程中的快速反馈。

3.其他特点

(1)动态载入。可以在运行时候重定义自己,类也可以在运行时继承或取消继承。

(2)自动内存管理机制。

(3)多精度整数。

(4)迭代器和闭包。

(5)开源项目。有大量活跃的社区支持Ruby语言。

什么是Rails?

虽然Ruby语言有很多优点,但是一直以来,其流行的范围也仅限于日本。直到2004年,Ruby才逐渐被世界上其他地区的人们所认识,那么是什么让Ruby语言走向世界的呢?是Rails。

Rails 框架首次提出是在2004年7月,它的研发者是26岁的丹麦人David Heinemeier Hansson。不同于已有复杂的Web 开发框架, Rails是一个更符合实际需要而且更高效的Web开发框架。Rails结合了PHP体系的优点(快速开发)和Java体系的优点(程序规整),因此, Rails在其提出后不长的时间里就受到了业内广泛的关注。

Rails框架主要有如下的6大特点。

1.全栈式的MVC框架

Rails是一个全栈式的MVC框架,换句话说,通过Rails可以实现MVC模式中的各个层次,并使它们无缝地协同运转起来。

在实际开发一个MVC模式的Web应用项目时,如果使用Java开发,需要用到Struts(Model层)、Hibernate (Controller 层)和Spring(View层)3个框架,而且需要额外整合3个框架开发出的内容。而使用Ruby语言开发相同的项目时,只需要用到Rails框架就可以完成。

2.约定优于配置

为了说明各个对象之间的关联关系,一般的Web应用开发框架往往采用写入XML配置文件的方法。这种方式虽然可以解决一些问题,但是却带来了管理上的混乱。

Rails 对此的态度是约定优于配置,这意味着在Rails中不会出现XML配置文件。Rails使用Web应用多年来积累的各种常见约定(更具体地说是命名规则)来代替XML配置文件,而在Rails内部的映射与发现机制根据这些约定可以实现对象之间的关联。在第1章中,通过Rails的映射与发现机制实现了数据表与Ruby对象之间的关联。

3.更少的代码

使用约定来代替XML配置文件说明Rails本身完成了大量的底层工作,这意味着使用更少的代码来实现应用程序是极有可能的。此外,代码量的缩减也减小了出现bug的可能性,降低了维护程序和升级程序的难度。

4.生成器

Rails 使用的实时映射技术和元编程技术,免去了开发人员在开发过程中编写大量样板文件代码的烦恼。在少数需要使用样板文件代码的时候,开发人员可以通过 Rails内建的生成器脚本实时创建,而不再是通过手工编写。Rails的这个特点可以使开发人员更专注于系统的逻辑结构,而不必为一些琐碎的细节所烦扰。

5.零周转时间

对已有的Web应用系统进行修改后,其一般需要经过配置、编译、发布、重新设置、测试等一系列步骤才能投入使用,这明显浪费了许多时间。而使用Rails开发Web应用系统,可以通过浏览器即时查看程序运行结果,从而节约了大量的时间。

6.支架系统

Rails的支架系统可以自动为任何相关的数据库表创建一套包含标准CRUD操作和前台视图的系统。通过支架系统,开发人员可以方便快捷地操纵数据库中的数据表。此外,Rails也允许开发人员使用自己设计的代码或视图来替换自动生成的代码和视图。

目前,Rails的最新版本是2005年12月13日发布的v1.0.0。从RoR正式提出到v1.0.0的发布,RoR在一年多的时间里受到了业内人士的广泛关注。RoR受到广泛关注主要有如下两个原因:首先,RoR的开发效率高(部署容易)、功能丰富(支持Ajax等流行应用),有消息称对于相同的 Web开发项目,使用RoR开发比使用Java体系架构开发快5~10倍;此外,令人不可思议的高性能是其受到关注的另一个重要原因,根据CSDN上转载的新闻称使用RoR开发出来的项目性能,比基于Struts+Hibernate+Spring的Java应用还要高15%~20%。

RoR 当前遇到的主要问题是使用RoR搭建的大型商业应用还很少,究其原因可以概括为两点:第一,从开发能力的角度,RoR是一个基于Ruby语言的轻型Web 开发框架,很多开发者对其是否适合大型应用难以把握。第二,本身使用RoR开发的大型商业应用较少,使得后来者持观望态度。

综合分析来看,RoR的发展前景还是很光明的。RoR在短时间内取得了巨大的成就,它打破了Web开发领域的固有观念,方便快捷的开发方式使其被广泛接受。而事实上,现在已有几家跨国公司正在使用RoR开发自己的Web应用程序,并且有多家大型公司在考虑使用RoR进行Web应用开发。

Ruby,源于拉丁文 Ruber,意思是红色宝石

Sapphire,源于拉丁文Spphins,意思是蓝色宝石

Emerald,起源于古波斯语,后演化成拉丁语Smaragdus,大约在公元

16世纪左右,成为今天英文名称,意思是祖母绿

Jadeite,是西班牙语Picdo de jade的简称,意思是翡翠

pal,源于拉丁文Opalus,意思是“集宝石之美于一身”,或来源于梵文

Upala,意思是“贵重的宝石”

Rock-crystal,是根据希腊文Krystallos演变而来的,其含义为“洁白

的冰”,形象地刻画了水晶清亮

Diamond,源于古希腊语Adamant,意思是

坚硬不可侵犯的物质,意思是钻石,也比喻女子的贞洁。

还有一些葡萄酒的名字也很好的说,

蛇龙珠

英文名称(Cabernet Gernischt)。

神索

英文名称(Sinsaut)。

佳美

英文名称(Gamay)。

歌海娜

英文名称(Grenache)。

美露

英文名称(Merlot)。

弥生

英文名称(Mission)。

内比奥罗

英文名称(Nebbiolo)。

桑娇维塞

英文名称(Sangiovese)。

增芳德

英文名称(Zinfandel)。

赤霞珠

英文名称(Cabernet Sauvignon)。

品丽珠

英文名称(Cabenet Franc)。

很独特的英文名字。。。

还有:AARON(希伯来)启发的意思,AARON被描绘为不高但英俊的男人,诚实刻苦具有责任感,是个有效率个性沈静的领导者。

ABEL(希伯来)"呼吸"的意思,为ABELARD的简写,大部份的人认为ABEL是高大,强壮的运动员,能干,独立,又聪明。有些人则认为ABEL是瘦小,温顺的男孩。

ABRAHAM原为希伯来文,意为"民族之父"。后来,它演变成"万物之父"的意思。大多数人将ABRAHAM形容为高大壮硕留着胡子的领袖,诚实,庄严,聪明,像埃布尔拉翰林肯总统一样

ADAM(希伯来),红土制造的意思。据说上帝用红土造人,而亚当是他造出的第一个人。 ADAM被形容是高大,黝黑,英俊,肌肉强健的男人,沈稳,聪明。

ADRIAN(拉丁文)黑色的意思。人们将ADRIAN描绘为迷人,阴柔的男子,敏感,体贴,可爱,富有。

ALVA希伯来名,给人的感觉是很崇高、庄严的,圣经上写着ALVA 是一个地名和种族名字。

ALEX为ALEXANDER的简写,人们认为ALEX是身强体健有着希腊血统的男子,聪明,和善,令人喜爱。

ALAN据传,英国有一位诗人,叫Alawn(阿伦),很近似于Alan,它的意思,但后来,这个名字常变形为Eilian、Allan、Ailin、A'lon等等。Alan的发音近似于撒格逊语Aylwyn或Alwyn(熟悉的朋友)的意思)。所以它在英国很为人所欢迎。

ALBERT(老式英语)崇高,聪明之意。ALBERT引人联想起三种形象;肥胖、笨重、缓慢,如Fat Albert;聪明,行为古怪,如Albert Einstein:或是正式, ALFRED(古英语),睿智的参谋。ALFRED给人两种截然不同的印象:一种是超重的智者,所谓智者就是有智慧的老人家,行事谨慎,另一种是文弱的书呆子。 ANDREW洛j希腊埵钓k子气概、雄壮、勇敢的男人。

ANDY为ANDREW的简写,ANDY被人形容为高高的,金发的,童心未泯的普通男子,快乐,随和老实憨厚。

ANGUS(盖尔语)唯一的选择。ANGUS被视作行为怪异,惹麻烦的傻瓜。

ANTHONY (拉丁)无价的意思,人们认为ANTHONY是高壮黝黑的意大利男人,聪明强壮并坚忍。

ARTHUR (凯尔特语)"贵族",(韦尔斯)英雄。Arthur有两个不同的意思:一生充满故事喜欢受注目的有趣老人或是沈静,与众不同,信守承诺的智者。

AUSTIN 同August,Augustine.AUSTIN被视为聪明,坦诚有礼的大男孩--或者是恃才傲物的富家公子。

BEN (希伯来)儿子的意思;所有BEN开头名字的简写。Ben被描述为高大,强壮的黑发男子,沈静、可爱,随和,温柔。

BENSON (希伯来英文)"Son of Benjamin"班杰明的儿子。感谢电视上Benson Dubois,给人的印象,Benson被形容是急智的黑人管家,聪明,体贴又有趣。

BRANT 古德语,意为妖精。这堜瓵蚹笑诨A可不是你我心想的贬义词,而是古代德国人对神仙的一般称呼。

BRENT 代表山顶或者避暑胜地。

BRIAN (爱尔兰语)"力量,美德",大部份人把Brian看做是爱尔兰男子,聪明,喜欢运动,并擅于社交。有些人则认为Brian是无聊喜欢黏着妈妈的孩子。

BRUCE来自一个地名Bruis或Braose,它是法国瑟堡(Cherbourg)附近的村庄。据说,村埵酗@个庄主,取名叫

Bruis,当诺尔曼人征服英国时,他们的子孙征服者来到英国,并把这姓名也传入英国。后来,苏格兰出现了一位民族英雄,叫罗伯特?布鲁斯,据说就是由法国去的布鲁斯家族的后代。

CARL(老式德语)"农人"同CHARLES。大部份的人认为CARL是个直率的人--照顾人,有礼的绅士,聪明稳重又沈静。而有些对CARL印象不那么好的人则认为,他是个自以为是而且脾气暴躁的人。

CARY,Carey(韦尔斯)"来自城堡的",(同Kerry)人们认为Cary是个适合电影明星的名字,温和,友善,无忧无虑的人,有些人则认为这个名字听起来相当女性化。

CASPAR人们对Caspar有两种印象。友善,害羞乐于助人的,就像鬼马小精灵一样。或是年长,有着忠实信仰,就像圣经釮aspar一样. CHARLES(古德文)有男人气概,强壮。CHARLES不是被看做辛勤,忠实的朋友与领导者就是被认做是聪明,自大的吹毛求疵者。

CHENEY采尼,法语意为『橡树林的人』。 CHRIS为CHRISTIAN,CHRISTOPHER的简写。CHRIS给人的印象是外表清爽,标准的美国男孩,聪明,可爱又有趣。

COLIN(爱尔兰迦略克)"孩子"的意思;同NICHOLAS人们将COLIN描绘为富有,金发的调情者,白天是聪明学有专精的人,夜晚是个迷人的花花公子。

COSMO希腊字,意为『宇宙』或者『秩序井然』。此名常见于苏格兰人。

DANIEL (希伯来)"上帝为我们的裁决者".Daniel被形容为英俊强壮的美国童子军,喜好运动勇敢,友善,值得信赖,教养良好,聪明且随和的人。 DARRYL(古英语)意为『亲爱的』。

DEREK (老式德语)"统治者"的意思。DEREK5被视为高壮,英俊,有男子气慨的运动员,个性为强悍,沈静,个性害羞。

DOUGLAS(苏格兰盖尔语)"从深水而来"。人们说Douglas是个强壮英俊的男子,不是聪明,敏感安静的类型,就是勇敢,外向常招惹一堆麻烦的人。

DAVID(希伯来)挚爱的意思。人们形容DAVID是强壮,英俊,聪明的男人善良,幽默又独立。

DENNY所有以DEN开头的名字的简称,DENNY这个名字让人联想到课堂上的笑蛋-爱玩友善极度幽默的年轻男孩,脑袋却不太灵光。

EDGAR(老式英语)"幸运的战士"。原盎格鲁萨克逊语为Eadgar。Ead-这个前缀词表示『富有』,『幸福』。

英国历史上,有一位人人皆知的国王Edgar the Peaceful(安详的埃德加),创建了英国的海军部队,并联合了八个小国王,使英国国力有所增强。十九世纪美国诗人兼小说家阿兰?波(Edgar Allan Poe)