簡介
RoR不僅表示RubyonRails的縮寫,還可以表示經濟術語、法律術語、機械化工術語等。同時也用來表示彙編指令。
Ruby語言
Ruby 語言是一種動態語言,它與Python、Smalltalk和Perl這3種程式語言有些類似。Ruby語言起源於日本,它的研發者是日本人松本行弘(Matsumoto Yukihiro)。松本行弘在1993年開始著手Ruby語言的研發工作,他開發Ruby語言的初衷是為了提高編程的效率。 1995年12月Matz推出了Ruby的第一個版本Ruby0.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、Hibernate和Spring等框架,而且需要額外整合3個框架開發出的內容。而使用Ruby語言開發相同的項目時,只需要用到Rails框架就可以完成。
2.約定優於配置
為了說明各個對象之間的關聯關係,一般的Web套用開發框架往往採用寫入XML配置檔案的方法。這種方式雖然可以解決一些問題,但是卻帶來了管理上的混亂。Rails對此的態度是約定優於配置,這意味著在Rails中不會出現XML配置檔案。Rails使用Web套用多年來積累的各種常見約定(更具體地說是命名規則)來代替XML配置檔案,而在Rails內部的映射與發現機制根據這些約定可以實現對象之間的關聯。
3.更少的代碼
使用約定來代替XML配置檔案說明Rails本身完成了大量的底層工作,這意味著使用更少的代碼來實現應用程式是極有可能的。此外,代碼量的縮減也減小了出現bug的可能性,降低了維護程式和升級程式的難度。
4.生成器
Rails使用的實時映射技術和元編程技術,免去了開發人員在開發過程中編寫大量樣板檔案代碼的煩惱。在少數需要使用樣板檔案代碼的時候,開發人員可以通過Rails內建的生成器腳本實時創建,而不再是通過手工編寫。Rails的這個特點可以使開發人員更專注於系統的邏輯結構,而不必為一些瑣碎的細節所煩擾。
5.零周轉時間
對已有的Web套用系統進行修改後,其一般需要經過配置、編譯、發布、重新設定、測試等一系列步驟才能投入使用,這明顯浪費了許多時間。而使用Rails開發Web套用系統,可以通過瀏覽器即時查看程式運行結果,從而節約了大量的時間。
6.支架系統
Rails的支架系統可以自動為任何相關的資料庫表創建一套包含標準CRUD操作和前台視圖的系統。通過支架系統,開發人員可以方便快捷地操縱資料庫中的數據表。此外,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%。
到2008年,又推出新版本:Rails2.1,性能上有了更大的提高。
RoR當前遇到的主要問題是使用RoR搭建的大型商業套用還很少,究其原因可以概括為兩點:第一,從開發能力的角度,RoR是一個基於Ruby語言的輕型Web開發框架,很多開發者對其是否適合大型套用難以把握。第二,本身使用RoR開發的大型商業套用較少,使得後來者持觀望態度。
綜合分析來看,RoR的發展前景還是很光明的。RoR在短時間內取得了巨大的成就,它打破了Web開發領域的固有觀念,方便快捷的開發方式使其被廣泛接受。而事實上,已有幾家跨國公司正在使用RoR開發自己的Web應用程式,並且有多家大型公司在考慮使用RoR進行Web套用開發。
企業領域
業界稱為「delphi之神」的李維,在歷經borland宣布出售開發工具部門的變革之後,大中華區技術總監的身份沒變,只是轉任borland子公司codegear的員工,回顧當初borland評估ide已成衰退市場的判斷,他認為:「borland忽略了開放源碼的興起,php和ror已開創一片藍海。」從舊有ide的使用率來看,delphi、vb、java及c++確實是下滑的,但新興語言的興起,造就了全新的機會。
其中ror(rubyonrails)是李維最看好的語言,他認為ror將改寫軟體開發對於「再利用(reuse)」的定義,提升到套用層級,並預估ror將會走入企業套用。
問:ror是開放源碼的技術,在缺乏有力的公司主導的情況下,如何在台灣推動相關套用?
答:這個趨勢我稱為草莽式的螞蟻雄兵,不論java、delphi或.net,它們都是由微軟、昇陽或borland等大公司由上而下的推動,可是開放源碼的興起是由下而上的力量,特別是當很多人發覺以java開發跨平台的解決方案,失敗率太高、太複雜時,會開始思考其他較簡單的技術。
ruby是這幾年成長最快速的語言,而在IT業界我們可以看到的一股潮流,是ror將開始進入企業套用領域。
問:你為什麼如此看好ror,它有什麼特別之處?
答:ror開啟了新的契機,軟體開發不僅是程式代碼或平台的再利用,應用程式也可再利用,可以節省很多時間。
我們寫程式那么多年,會發覺程式需要管理,所以會有子系統或程式等出現,進入團隊就會有類別庫(class library)或平台(framework),以方便再利用。但是做10個項目,往往能夠再利用的都是語言、平台或函式庫。
其實很多應用程式可以再利用的,例如登入機制,這是每個系統都需要的功能,但為什麼要各寫一套呢?
在ror我看到它有套用層級的再利用能力,因為ror只有一個平台,叫做rails。rails因為使用mvc架構,所以是非常有紀律(decipline)、有系統且有管理的平台。
問:為什麼別的語言無法做到套用層級的再利用,而ror就可以?
答:因為ror就只有ruby語言和rails平台,而且固定這種架構。ror的應用程式,有固定的目錄,每個資料夾存放什麼是固定的,而且它使用mvc模式,所以利用ror開發一個登入的功能,下一個系統可以延用。
其他的語言之所以無法做到,是因為沒有統一的平台。為什麼delphi不行?因為每個人可以用不同的組件、平台和目錄結構,所以只能封裝成dll或組件才有可能再利用。
為什麼java不行?因為可以選擇jsp、spring、struts或jsf……等平台,然而用spring平台開發的登入機制,struts無法使用。
再舉一個例子,delphi如果要匯入visual studio的項目,必須特別為這個用途開發一個plug-in,因為visual studio有專屬的項目格式與目錄。但對ror而言,根本不必在意這個問題,因為ror有固定的目錄結構,只要複製目錄就可以匯入使用。而且ror的生產力真的很高,我幾乎每天都在用,這比起java,實在舒服太多了。
問:ror可以進入企業的套用嗎?
答:java可以,ror為什麼不行?它的效能並不差。
至於語言的嚴謹程度,由於它是腳本語言(script language)起家,所以語法比較沒那么嚴謹,而java和c++都是學術單位起家,所以比較嚴謹,但是軟體開發不是從事研究工作,嚴謹度方面,只要模糊性不會太高就還好。
企業擔心ror是開放源碼,其次懷疑它能否支撐大型的開發。其實ror在國外已經非常流行,德國的大學已經把ror放入教學課程,所以ror是非常有機會進入企業及學術領域。
問:php和ror的開發者喜歡純手工打造的成就感,會不會擔心3rdrail叫好不叫座?
答:試想一下ror進入企業,可能接受以記事本或ultraedit隨性編輯與儲存的開發方式嗎?企業除了重視效能和延展性外,最重要的就是紀律,所以會需要一套ide幫助項目的管理。
3rdrail不是要針對享受命令行或script的開發者。當ror進入企業級套用,會需要開發工具結合版本控管、管理機制、項目管理等,3rdrail可以結合版本控管機制。此外3rdrail不光是一個編輯器,它提供除錯和項目管理機制等,都是企業級套用需要的。
3rdrail只是針對單一開發者或小型的開發團隊,接下來會推出企業版,提供例如版本控管和團隊管理等更多企業級套用需要的功能.
彙編指令
ror(rotate right) 右循環移位指令
右循環移位指令ror,它每移位一次,運算元 右移,其最低位移入最高位,同時最低位也移入標誌CF。(移出的位不僅要進入CF,而且還要填補空出的位。)
專業術語
經濟術語
ROR是Rate of Return Regulation的縮寫。即投資回報率管制,又稱公正報酬率、費率管制。是對以電信、電力等易壟斷行業為代表的行業實行的一種資費管制形式。以成本為管制基礎,其公式為:公正報酬率=(業務總收入-業務總支出)/總資產。
法律術語
ROR = Release On Recognizance
交付保證金後,獲得保釋
機械化工術語
ROR = Rate Of Rise 上升速率
印製線路板、覆銅箔層壓板等專業術語,一般指(溫度)上升速率。
真空測試環境測試中使用(特定專業術語)。PS: 當真空度達到指定數值(規定的範圍內).停止真空幫輔抽氣。任由其回升﹐在單位時間內觀察數值上升的狀況﹐通過計算得到ROR數值﹐通過比較﹐判斷腔體是否具有良好的密封性.