??????? RoR是Ruby on Rails的縮寫。Ruby on Rails是一個(gè)用于編寫網(wǎng)絡(luò)應(yīng)用程序的框架,它基于計(jì)算機(jī)軟件語言Ruby,給程序開發(fā)人員提供強(qiáng)大的框架支持。Ruby on Rails包括兩部分內(nèi)容:Ruby語言和Rails框架。
什么是Ruby?
????? Ruby語言是一種動態(tài)語言,它與Python、Smalltalk和Perl這3種編程語言有些類似。Ruby語言起源于日本,它的研發(fā)者是日本人松本行弘(Matsumoto Yukihiro)。松本行弘在1993年開始著手Ruby語言的研發(fā)工作,他開發(fā)Ruby語言的初衷是為了提高編程的效率。1995年12月Matz推出了Ruby的第一個(gè)版本Ruby 0.95。
Ruby語言的主要特點(diǎn)如下。
1.純的面向?qū)ο笳Z言
在Ruby中,一切皆是對象。下面舉一個(gè)例子來更直觀地說明Ruby語言的這一特點(diǎn)。
在Java中,求一個(gè)數(shù)的絕對值的代碼如下。
int c = Math.abs(-20);
而在Ruby語言中,一切皆是對象,也就是說“-20”這個(gè)數(shù)也是一個(gè)對象,因此,求一個(gè)數(shù)絕對值的Ruby代碼形式如下。
c = -20.abs
這樣的代碼編寫方式是不是更形象一些呢?
2.解釋型腳本語言
Ruby語言是解釋型腳本語言,它既有腳本語言強(qiáng)大的字符串處理能力和正則表達(dá)式,又不失解釋型語言的動態(tài)性。一方面,在最初設(shè)計(jì)Ruby語言時(shí),Ruby的研發(fā)者松本行弘考慮到文字處理方面的需要,他借鑒了Perl語言在文字處理方面的成功經(jīng)驗(yàn)。另一方面,松本行弘將Ruby語言設(shè)定為一種解釋型語言,Ruby的動態(tài)性使得由Ruby語言編寫的程序不需要事先編譯即可直接運(yùn)行,這為程序的調(diào)試帶來了方便。同時(shí),這一特點(diǎn)可以實(shí)現(xiàn)開發(fā)過程中的快速反饋。
3.其他特點(diǎn)
(1)動態(tài)載入??梢栽谶\(yùn)行時(shí)候重定義自己,類也可以在運(yùn)行時(shí)繼承或取消繼承。
(2)自動內(nèi)存管理機(jī)制。
(3)多精度整數(shù)。
(4)迭代器和閉包。
(5)開源項(xiàng)目。有大量活躍的社區(qū)支持Ruby語言。
什么是Rails?
??????? 雖然Ruby語言有很多優(yōu)點(diǎn),但是一直以來,其流行的范圍也僅限于日本。直到2004年,Ruby才逐漸被世界上其他地區(qū)的人們所認(rèn)識,那么是什么讓Ruby語言走向世界的呢?是Rails。
????? Rails框架首次提出是在2004年7月,它的研發(fā)者是26歲的丹麥人David Heinemeier Hansson。不同于已有復(fù)雜的Web 開發(fā)框架,Rails是一個(gè)更符合實(shí)際需要而且更高效的Web開發(fā)框架。Rails結(jié)合了PHP體系的優(yōu)點(diǎn)(快速開發(fā))和Java體系的優(yōu)點(diǎn)(程序規(guī)整),因此,Rails在其提出后不長的時(shí)間里就受到了業(yè)內(nèi)廣泛的關(guān)注。
Rails框架主要有如下的6大特點(diǎn)。
1.全棧式的MVC框架
????? Rails是一個(gè)全棧式的MVC框架,換句話說,通過Rails可以實(shí)現(xiàn)MVC模式中的各個(gè)層次,并使它們無縫地協(xié)同運(yùn)轉(zhuǎn)起來。
????? 在實(shí)際開發(fā)一個(gè)MVC模式的Web應(yīng)用項(xiàng)目時(shí),如果使用Java開發(fā),需要用到Struts(Model層)、Hibernate(Controller層)和Spring(View層)3個(gè)框架,而且需要額外整合3個(gè)框架開發(fā)出的內(nèi)容。而使用Ruby語言開發(fā)相同的項(xiàng)目時(shí),只需要用到Rails框架就可以完成。
2.約定優(yōu)于配置
????? 為了說明各個(gè)對象之間的關(guān)聯(lián)關(guān)系,一般的Web應(yīng)用開發(fā)框架往往采用寫入XML配置文件的方法。這種方式雖然可以解決一些問題,但是卻帶來了管理上的混亂。
????? Rails對此的態(tài)度是約定優(yōu)于配置,這意味著在Rails中不會出現(xiàn)XML配置文件。Rails使用Web應(yīng)用多年來積累的各種常見約定(更具體地說是命名規(guī)則)來代替XML配置文件,而在Rails內(nèi)部的映射與發(fā)現(xiàn)機(jī)制根據(jù)這些約定可以實(shí)現(xiàn)對象之間的關(guān)聯(lián)。在第1章中,通過Rails的映射與發(fā)現(xiàn)機(jī)制實(shí)現(xiàn)了數(shù)據(jù)表與Ruby對象之間的關(guān)聯(lián)。
3.更少的代碼
????? 使用約定來代替XML配置文件說明Rails本身完成了大量的底層工作,這意味著使用更少的代碼來實(shí)現(xiàn)應(yīng)用程序是極有可能的。此外,代碼量的縮減也減小了出現(xiàn)bug的可能性,降低了維護(hù)程序和升級程序的難度。
4.生成器
????? Rails使用的實(shí)時(shí)映射技術(shù)和元編程技術(shù),免去了開發(fā)人員在開發(fā)過程中編寫大量樣板文件代碼的煩惱。在少數(shù)需要使用樣板文件代碼的時(shí)候,開發(fā)人員可以通過Rails內(nèi)建的生成器腳本實(shí)時(shí)創(chuàng)建,而不再是通過手工編寫。Rails的這個(gè)特點(diǎn)可以使開發(fā)人員更專注于系統(tǒng)的邏輯結(jié)構(gòu),而不必為一些瑣碎的細(xì)節(jié)所煩擾。
5.零周轉(zhuǎn)時(shí)間
????? 對已有的Web應(yīng)用系統(tǒng)進(jìn)行修改后,其一般需要經(jīng)過配置、編譯、發(fā)布、重新設(shè)置、測試等一系列步驟才能投入使用,這明顯浪費(fèi)了許多時(shí)間。而使用Rails開發(fā)Web應(yīng)用系統(tǒng),可以通過瀏覽器即時(shí)查看程序運(yùn)行結(jié)果,從而節(jié)約了大量的時(shí)間。
6.支架系統(tǒng)
????? Rails的支架系統(tǒng)可以自動為任何相關(guān)的數(shù)據(jù)庫表創(chuàng)建一套包含標(biāo)準(zhǔn)CRUD操作和前臺視圖的系統(tǒng)。通過支架系統(tǒng),開發(fā)人員可以方便快捷地操縱數(shù)據(jù)庫中的數(shù)據(jù)表。此外,Rails也允許開發(fā)人員使用自己設(shè)計(jì)的代碼或視圖來替換自動生成的代碼和視圖。
????? 目前,Rails的最新版本是2005年12月13日發(fā)布的v1.0.0。從RoR正式提出到v1.0.0的發(fā)布,RoR在一年多的時(shí)間里受到了業(yè)內(nèi)人士的廣泛關(guān)注。RoR受到廣泛關(guān)注主要有如下兩個(gè)原因:首先,RoR的開發(fā)效率高(部署容易)、功能豐富(支持Ajax等流行應(yīng)用),有消息稱對于相同的Web開發(fā)項(xiàng)目,使用RoR開發(fā)比使用Java體系架構(gòu)開發(fā)快5~10倍;此外,令人不可思議的高性能是其受到關(guān)注的另一個(gè)重要原因,根據(jù)CSDN上轉(zhuǎn)載的新聞稱使用RoR開發(fā)出來的項(xiàng)目性能,比基于Struts+Hibernate+Spring的Java應(yīng)用還要高15%~20%。
????? RoR當(dāng)前遇到的主要問題是使用RoR搭建的大型商業(yè)應(yīng)用還很少,究其原因可以概括為兩點(diǎn):第一,從開發(fā)能力的角度,RoR是一個(gè)基于Ruby語言的輕型Web開發(fā)框架,很多開發(fā)者對其是否適合大型應(yīng)用難以把握。第二,本身使用RoR開發(fā)的大型商業(yè)應(yīng)用較少,使得后來者持觀望態(tài)度。
????? 綜合分析來看,RoR的發(fā)展前景還是很光明的。RoR在短時(shí)間內(nèi)取得了巨大的成就,它打破了Web開發(fā)領(lǐng)域的固有觀念,方便快捷的開發(fā)方式使其被廣泛接受。而事實(shí)上,現(xiàn)在已有幾家跨國公司正在使用RoR開發(fā)自己的Web應(yīng)用程序,并且有多家大型公司在考慮使用RoR進(jìn)行Web應(yīng)用開發(fā)。
ROR開發(fā)環(huán)境的配置見如下鏈接
http://hi.baidu.com/jadmin/blog/item/a0d7f2ef456aca34acafd584.html
posted on 2007-07-03 12:56
jadmin 閱讀(93)
評論(0) 編輯 收藏