posts - 495,  comments - 11,  trackbacks - 0

          ??????? RoR是Ruby on Rails的縮寫。Ruby on Rails是一個用于編寫網(wǎng)絡(luò)應(yīng)用程序的框架,它基于計算機(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的第一個版本Ruby 0.95。

          Ruby語言的主要特點如下。
          1.純的面向?qū)ο笳Z言
          在Ruby中,一切皆是對象。下面舉一個例子來更直觀地說明Ruby語言的這一特點。
          在Java中,求一個數(shù)的絕對值的代碼如下。
          int c = Math.abs(-20);
          而在Ruby語言中,一切皆是對象,也就是說“-20”這個數(shù)也是一個對象,因此,求一個數(shù)絕對值的Ruby代碼形式如下。
          c = -20.abs
          這樣的代碼編寫方式是不是更形象一些呢?

          2.解釋型腳本語言
          Ruby語言是解釋型腳本語言,它既有腳本語言強(qiáng)大的字符串處理能力和正則表達(dá)式,又不失解釋型語言的動態(tài)性。一方面,在最初設(shè)計Ruby語言時,Ruby的研發(fā)者松本行弘考慮到文字處理方面的需要,他借鑒了Perl語言在文字處理方面的成功經(jīng)驗。另一方面,松本行弘將Ruby語言設(shè)定為一種解釋型語言,Ruby的動態(tài)性使得由Ruby語言編寫的程序不需要事先編譯即可直接運行,這為程序的調(diào)試帶來了方便。同時,這一特點可以實現(xiàn)開發(fā)過程中的快速反饋。

          3.其他特點
          (1)動態(tài)載入??梢栽谶\行時候重定義自己,類也可以在運行時繼承或取消繼承。
          (2)自動內(nèi)存管理機(jī)制。
          (3)多精度整數(shù)。
          (4)迭代器和閉包。
          (5)開源項目。有大量活躍的社區(qū)支持Ruby語言。

          什么是Rails?
          ??????? 雖然Ruby語言有很多優(yōu)點,但是一直以來,其流行的范圍也僅限于日本。直到2004年,Ruby才逐漸被世界上其他地區(qū)的人們所認(rèn)識,那么是什么讓Ruby語言走向世界的呢?是Rails。
          ????? Rails框架首次提出是在2004年7月,它的研發(fā)者是26歲的丹麥人David Heinemeier Hansson。不同于已有復(fù)雜的Web 開發(fā)框架,Rails是一個更符合實際需要而且更高效的Web開發(fā)框架。Rails結(jié)合了PHP體系的優(yōu)點(快速開發(fā))和Java體系的優(yōu)點(程序規(guī)整),因此,Rails在其提出后不長的時間里就受到了業(yè)內(nèi)廣泛的關(guān)注。

          Rails框架主要有如下的6大特點。
          1.全棧式的MVC框架
          ????? Rails是一個全棧式的MVC框架,換句話說,通過Rails可以實現(xiàn)MVC模式中的各個層次,并使它們無縫地協(xié)同運轉(zhuǎn)起來。
          ????? 在實際開發(fā)一個MVC模式的Web應(yīng)用項目時,如果使用Java開發(fā),需要用到Struts(Model層)、Hibernate(Controller層)和Spring(View層)3個框架,而且需要額外整合3個框架開發(fā)出的內(nèi)容。而使用Ruby語言開發(fā)相同的項目時,只需要用到Rails框架就可以完成。

          2.約定優(yōu)于配置
          ????? 為了說明各個對象之間的關(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ù)這些約定可以實現(xiàn)對象之間的關(guān)聯(lián)。在第1章中,通過Rails的映射與發(fā)現(xiàn)機(jī)制實現(xiàn)了數(shù)據(jù)表與Ruby對象之間的關(guān)聯(lián)。

          3.更少的代碼
          ????? 使用約定來代替XML配置文件說明Rails本身完成了大量的底層工作,這意味著使用更少的代碼來實現(xiàn)應(yīng)用程序是極有可能的。此外,代碼量的縮減也減小了出現(xiàn)bug的可能性,降低了維護(hù)程序和升級程序的難度。

          4.生成器
          ????? Rails使用的實時映射技術(shù)和元編程技術(shù),免去了開發(fā)人員在開發(fā)過程中編寫大量樣板文件代碼的煩惱。在少數(shù)需要使用樣板文件代碼的時候,開發(fā)人員可以通過Rails內(nèi)建的生成器腳本實時創(chuàng)建,而不再是通過手工編寫。Rails的這個特點可以使開發(fā)人員更專注于系統(tǒng)的邏輯結(jié)構(gòu),而不必為一些瑣碎的細(xì)節(jié)所煩擾。

          5.零周轉(zhuǎn)時間
          ????? 對已有的Web應(yīng)用系統(tǒng)進(jìn)行修改后,其一般需要經(jīng)過配置、編譯、發(fā)布、重新設(shè)置、測試等一系列步驟才能投入使用,這明顯浪費了許多時間。而使用Rails開發(fā)Web應(yīng)用系統(tǒng),可以通過瀏覽器即時查看程序運行結(jié)果,從而節(jié)約了大量的時間。

          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è)計的代碼或視圖來替換自動生成的代碼和視圖。

          ????? 目前,Rails的最新版本是2005年12月13日發(fā)布的v1.0.0。從RoR正式提出到v1.0.0的發(fā)布,RoR在一年多的時間里受到了業(yè)內(nèi)人士的廣泛關(guān)注。RoR受到廣泛關(guān)注主要有如下兩個原因:首先,RoR的開發(fā)效率高(部署容易)、功能豐富(支持Ajax等流行應(yīng)用),有消息稱對于相同的Web開發(fā)項目,使用RoR開發(fā)比使用Java體系架構(gòu)開發(fā)快5~10倍;此外,令人不可思議的高性能是其受到關(guān)注的另一個重要原因,根據(jù)CSDN上轉(zhuǎn)載的新聞稱使用RoR開發(fā)出來的項目性能,比基于Struts+Hibernate+Spring的Java應(yīng)用還要高15%~20%。

          ????? RoR當(dāng)前遇到的主要問題是使用RoR搭建的大型商業(yè)應(yīng)用還很少,究其原因可以概括為兩點:第一,從開發(fā)能力的角度,RoR是一個基于Ruby語言的輕型Web開發(fā)框架,很多開發(fā)者對其是否適合大型應(yīng)用難以把握。第二,本身使用RoR開發(fā)的大型商業(yè)應(yīng)用較少,使得后來者持觀望態(tài)度。

          ????? 綜合分析來看,RoR的發(fā)展前景還是很光明的。RoR在短時間內(nèi)取得了巨大的成就,它打破了Web開發(fā)領(lǐng)域的固有觀念,方便快捷的開發(fā)方式使其被廣泛接受。而事實上,現(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 閱讀(98) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 镇远县| 天峻县| 涪陵区| 凤庆县| 平原县| 宁南县| 额尔古纳市| 阳泉市| 吴江市| 上饶县| 萍乡市| 沅陵县| 龙州县| 罗江县| 宁强县| 陇南市| 大关县| 大理市| 平江县| 治县。| 廉江市| 嘉祥县| 大兴区| 德江县| 开封市| 石景山区| 巴楚县| 恩平市| 九台市| 格尔木市| 洞头县| 桑植县| 乌审旗| 义马市| 高台县| 延寿县| 蓬溪县| 丹巴县| 错那县| 凤冈县| 肇庆市|