ROR是ruby on rails的縮寫。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.約定優於配置
為了說明各US">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套用開發。