在使用Rails之前,讓我們回顧一下Ruby的幾個要點,它是Rails的基礎。
Ruby是成功的−
- Smalltalk's conceptual elegance,
- Python's ease of use and learning, and
- Perl's pragmatism.
魯比是;
- A high-level programming language.
- Interpreted like Perl, Python, Tcl/TK.
- Object-oriented like Smalltalk, Eiffel, Ada, Java.
Why Ruby?
紅寶石起源於日本,現在在美國和歐洲也越來越受歡迎。以下因素有助於它的受歡迎程度;
- Easy to learn
- Open source (very liberal license)
- Rich libraries
- Very easy to extend
- Truly object-oriented
- Less coding with fewer bugs
- Helpful community
儘管我們有很多理由使用Ruby,但是在實現Ruby−之前,您可能還需要考慮一些缺點;
性能問題 &減;雖然它與Perl和Python相競爭,但它仍然是一種解釋性語言,我們無法將它與C或C++等高級程式語言進行比較。
線程模型−Ruby不使用本機線程。Ruby線程是在VM中模擬的,而不是作爲本機OS線程運行。
Sample Ruby Code
下面是一個列印「Hello Ruby」的Ruby代碼示例
# The Hello Class class Hello def initialize( name ) @name = name.capitalize end def salute puts "Hello #{@name}!" end end # Create a new object h = Hello.new("Ruby") # Output "Hello Ruby!" h.salute
輸出−這將產生以下結果−
Hello Ruby!
Embedded Ruby
Ruby提供了一個名爲ERB(嵌入式Ruby)的程序,由Seki Masatoshi編寫。ERB允許您將Ruby代碼放入HTML文件中。ERB逐字閱讀,然後在某個時刻,當遇到嵌入到文檔中的Ruby代碼時,它開始執行Ruby代碼。
你只需要知道兩件事就可以準備一份ERB文件;
如果要執行某些Ruby代碼,請將其括在<%和%>之間
如果希望輸出代碼執行的結果,作爲輸出的一部分,請將代碼括在<%=和%>之間。
這裡有一個例子。將代碼保存在erbdemo.rb文件中。注意,Ruby文件的擴展名爲.rb−
<% page_title = "Demonstration of ERB" %> <% salutation = "Dear programmer," %> <html> <head> <title><%= page_title %></title> </head> <body> <p><%= salutation %></p> <p>This is an example of how ERB fills out a template.</p> </body> </html>
現在,使用命令行實用程序erb運行程序。
tp> erb erbdemo.rb
這將產生以下結果&負;
<html> <head> <title>Demonstration of ERb</title> </head> <body> <p>Dear programmer,</p> <p>This is an example of how ERb fills out a template.</p> </body> </html>
What is Rails?
一個非常高效的web應用程式框架。
大衛·海涅梅爾·漢森用紅寶石寫的。
使用Rails開發web應用程式的速度至少是使用典型Java框架的10倍。
一個用於開發資料庫支持的web應用程式的開源Ruby框架。
使用資料庫架構配置代碼。
不需要編譯階段。
Full Stack Framework
包括使用模型-視圖-控制器模式創建資料庫驅動的web應用程式所需的所有內容。
作爲一個完整的堆棧框架,意味著所有層都可以無縫地與更少的代碼一起工作。
比其他框架需要更少的代碼行。
Convention over Configuration
Rails會避開配置文件,而傾向於使用約定、反射和動態運行時擴展。
您的應用程式代碼和運行中的資料庫已經包含了Rails需要知道的一切!
Rails Strengths
Rails包含了一些使您更有效率的特性,下面的許多特性是在其他特性的基礎上構建的。
Metaprogramming
當其他框架從頭開始使用大量代碼生成時,Rail框架使用元編程技術來編寫程序。Ruby是元編程的最佳語言之一,Rails很好地使用了這一功能。Rails也使用代碼生成,但更依賴於元編程來完成繁重的工作。
Active Record
Rails引入了Active Record框架,它將對象保存到資料庫中。活動記錄的Rails版本發現資料庫模式中的列,並使用元編程將它們自動附加到域對象。
Convention over configuration
大多數.NET或Java的web開發框架都會強制您編寫配置代碼頁。如果遵循建議的命名約定,Rails不需要太多配置。
Scaffolding
您經常在開發的早期階段創建臨時代碼,以幫助快速啓動應用程式並查看主要組件如何協同工作。Rails會自動創建您需要的大部分腳手架。
Built-in testing
Rails創建簡單的自動化測試,然後可以擴展。Rails還提供了稱爲wireless和fixture的支持代碼,使測試用例更易於編寫和運行。然後Ruby可以使用rake實用程序執行所有的自動化測試。
Three environments
Rails提供了三個默認環境:開發、測試和生產。每種方式的行爲稍有不同,使您的整個軟體開發周期更容易。例如,Rails爲每個測試運行創建一個新的測試資料庫副本。