首頁(yè) > 專家說(shuō)

關(guān)于Ruby

來(lái)源:新能源網(wǎng)
時(shí)間:2024-08-17 11:59:59
熱度:

關(guān)于Ruby【專家解說(shuō)】:Ruby on Rails是一個(gè)用于編寫網(wǎng)絡(luò)應(yīng)用程序的框架,它基于計(jì)算機(jī)軟件語(yǔ)言Ruby,給程序開發(fā)人員提供強(qiáng)大的框架支持。Ruby on Rails包括

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