資源描述:
《ruby+on+rails快速web應(yīng)用開發(fā)實(shí)戰(zhàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、第2章RoR概述現(xiàn)在您對(duì)RoR快速開發(fā)已經(jīng)有了一個(gè)直觀的印象,但是也許您并不知道如下問題的答案。—什么是RoR?—RoR有哪些特點(diǎn)?—為什么要選擇RoR?—如何搭建RoR開發(fā)環(huán)境?對(duì)于這些問題,相信您在學(xué)習(xí)本章內(nèi)容后會(huì)有自己的答案。本章將講述關(guān)于RoR的基礎(chǔ)知識(shí),包括RoR的歷史、特點(diǎn)和現(xiàn)狀,在本章的最后將會(huì)詳細(xì)介紹RoR開發(fā)環(huán)境的搭建。如果您對(duì)這部分內(nèi)容已經(jīng)有所了解,那么您完全可以跳過本章繼續(xù)學(xué)習(xí)。2.1概述RoR是RubyonRails的縮寫。RubyonRails是一個(gè)用于編寫網(wǎng)絡(luò)應(yīng)用程序的框架,它基于計(jì)算機(jī)軟件語言Ruby,給程序開發(fā)人員提供強(qiáng)
2、大的框架支持。RubyonRails包括兩部分內(nèi)容:Ruby語言和Rails框架。20RubyonRails快速Web應(yīng)用開發(fā)實(shí)戰(zhàn)2.1.1什么是RubyRuby語言是一種動(dòng)態(tài)語言,它與Python、Smalltalk和Perl這3種編程語言有些類似。Ruby語言起源于日本,它的研發(fā)者是日本人松本行弘(MatsumotoYukihiro)。松本行弘在1993年開始著手Ruby語言的研發(fā)工作,他開發(fā)Ruby語言的初衷是為了提高編程的效率。1995年12月Matz推出了Ruby的第一個(gè)版本Ruby0.95。Ruby語言的主要特點(diǎn)如下。1.純的面向?qū)ο笳Z言在
3、Ruby中,一切皆是對(duì)象。下面舉一個(gè)例子來更直觀地說明Ruby語言的這一特點(diǎn)。在Java中,求一個(gè)數(shù)的絕對(duì)值的代碼如下。intc=Math.abs(-20);而在Ruby語言中,一切皆是對(duì)象,也就是說“-20”這個(gè)數(shù)也是一個(gè)對(duì)象,因此,求一個(gè)數(shù)絕對(duì)值的Ruby代碼形式如下。c=-20.abs這樣的代碼編寫方式是不是更形象一些呢?2.解釋型腳本語言Ruby語言是解釋型腳本語言,它既有腳本語言強(qiáng)大的字符串處理能力和正則表達(dá)式,又不失解釋型語言的動(dòng)態(tài)性。一方面,在最初設(shè)計(jì)Ruby語言時(shí),Ruby的研發(fā)者松本行弘考慮到文字處理方面的需要,他借鑒了Perl語言在
4、文字處理方面的成功經(jīng)驗(yàn)。另一方面,松本行弘將Ruby語言設(shè)定為一種解釋型語言,Ruby的動(dòng)態(tài)性使得由Ruby語言編寫的程序不需要事先編譯即可直接運(yùn)行,這為程序的調(diào)試帶來了方便。同時(shí),這一特點(diǎn)可以實(shí)現(xiàn)開發(fā)過程中的快速反饋。3.其他特點(diǎn)(1)動(dòng)態(tài)載入??梢栽谶\(yùn)行時(shí)候重定義自己,類也可以在運(yùn)行時(shí)繼承或取消繼承。(2)自動(dòng)內(nèi)存管理機(jī)制。(3)多精度整數(shù)。(4)迭代器和閉包。第2章RoR概述21(5)開源項(xiàng)目。有大量活躍的社區(qū)支持Ruby語言。2.1.2什么是Rails雖然Ruby語言有很多優(yōu)點(diǎn),但是一直以來,其流行的范圍也僅限于日本。直到2004年,Ruby才
5、逐漸被世界上其他地區(qū)的人們所認(rèn)識(shí),那么是什么讓Ruby語言走向世界的呢?是Rails。Rails框架首次提出是在2004年7月,它的研發(fā)者是26歲的丹麥人DavidHeinemeierHansson。不同于已有復(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)M
6、VC模式中的各個(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è)對(duì)象之間的關(guān)聯(lián)關(guān)系,一般的Web應(yīng)用開發(fā)框架往往采用寫入XML配置文件的方法。這種方式雖然可以解決一些問題,但是卻帶來了管理上的混亂。Rails對(duì)此的態(tài)度是約定優(yōu)于配置,這意味著在Ra
7、ils中不會(huì)出現(xiàn)XML配置文件。Rails使用Web應(yīng)用多年來積累的各種常見約定(更具體地說是命名規(guī)則)來代替XML配置文件,而在Rails內(nèi)部的映射與發(fā)現(xiàn)機(jī)制根據(jù)這些約定可以實(shí)現(xiàn)對(duì)象之間的關(guān)聯(lián)。在第1章中,通過Rails的映射與發(fā)現(xiàn)機(jī)制實(shí)現(xiàn)了數(shù)據(jù)表與Ruby對(duì)象之間的關(guān)聯(lián)。3.更少的代碼使用約定來代替XML配置文件說明Rails本身完成了大量的底層工作,這意22RubyonRails快速Web應(yīng)用開發(fā)實(shí)戰(zhàn)味著使用更少的代碼來實(shí)現(xiàn)應(yīng)用程序是極有可能的。此外,代碼量的縮減也減小了出現(xiàn)bug的可能性,降低了維護(hù)程序和升級(jí)程序的難度。4.生成器Rails使用
8、的實(shí)時(shí)映射技術(shù)和元編程技術(shù),免去了開發(fā)人員在開發(fā)過程中編寫大量樣板文件代碼的煩惱。在少數(shù)需要使