[转]Ruby on Rails (ROR)

原文 最簡潔有力的網頁框架,網頁的「殺手程式Killer Application」,網頁程式設計的「簡約奢華時尚」。網頁應用程式的軟體從業人員可以試試Ruby on Rails,說不定真的可以在「鐵軌上找到紅寶石」喔! 簡介 開發網頁應用程式的軟體從業人員們,還在為寫程式或寫設定檔而焦頭爛額嗎?試試Ruby on Rails,就算你不喜歡,也不會有任何偒害。事實上很多人用了就上癮了,因為它為你節省許多寶貴的時間,假日不必再到公司加班,每天準時下班。你開心,老闆開心,大家都開心,它是怎麼做到的呢? Ruby(紅寶石) 認識Ruby on Rails之前,我們先來看看Ruby是什麼?Ruby的作者是個名叫松本行弘(Yukihiro Matsumoto, matz)的日本人,他在用了多種不符他需求的程式語言後,決定開發一個比Perl功能更強大,比Python更物件導向的程式設計語言。Ruby這個用C語言寫成的純物件導向Script Language因此誕生了。松本的設計理念是給程式設計師最少的驚奇(principle of least surprise),他站在程式設計者的角度設想,希望程式設計者使用Ruby能得心應手,用得快樂,迅速開發。Ruby第一個alpha測試版是在1994年12月釋出,雖然在1995年在日本正式釋出時,日本人並不陌生,但英文版的Ruby則是到1998年年底才出現。 An Introduction to Ruby的作者 Colin Steele 說:「Ruby 結合了Smalltalk, C, Perl, and Python 最棒的特色,非常地優雅自然,在一天之內我就著迷了。」 命名小插曲-Ruby指的是珍貴的紅寶石,它不是字頭縮寫字。松本跟他的朋友開玩笑說這個新語言一定也要是個寶石的名字,要像Perl是珍珠(Pearl)的諧音之類的,他的朋友馬上提出「Ruby」,這個名字被松本採用了。而且松本後來發現很巧的是Perl(Pearl)是六月的誕生石,Ruby是七月的誕生石。 想要更進一步認識這個珍貴的紅寶石嗎?請參考以下的網站 http://www.ruby-lang.org/ http://www.rubygarden.org/ Ruby on Rails 接下來我們就要來看看Ruby on Rails。Ruby on Rails是用Ruby寫的網頁應用程式開發框架(web application framework),一般簡稱"Rails"或是"RoR"。它的作者是David Heinemeier Hansson (簡稱DHH) ,一個來自丹麥的年輕程式師。RoR是他為了Basecamp專案而開發的架構,之後在2005年釋出的open source project,目標是要加快以資料庫驅動的網站的開發速度與簡化過程。要達成這個目標,有兩個重大原則:一個是絕不做重覆的事,(DRY, Don’t Repeat Yourself),程式設計師要寫的程式碼愈少愈好,因為程式碼少的話,出錯的機率也會降低,最後維護起來也容易;另一個原則是用慣例(通則)取代設定(Convention over Configuration)。  [caption id="" align="alignnone" width="554"] rails 架构图[/caption] MVC (Model-View-Controller) RoR的基本架構是MVC(Model-View-Controller),Model處理和資料庫之間的溝通,View則是產生使用者介面,使用者透過View的頁面發出要求,Controller則是處理使用者的要求,若要使用到資料庫,則和Model溝通,由Model去進行資料庫的存取,再由View根據結果產生使用者看到的頁面。依照這樣的處理模式,資料的處理和使用者介面不會互相干擾,程式較容易撰寫也較容易維護。 Active Record Active Record是RoR所提供的ORM (Object/Relational Mapping) layer。RoR是資料庫驅動的網頁開發程式,所以資料庫的處理是非常重要的。Active Record會做如下的對應動作:

Database

 

Model

tables

à

classes

rows

à

objects

columns

à

attributes
Active Record 主要利用到之前提到的原則之一,就是慣例取代設定。例如你的程式中有一個名為Student的class,Active Record 的慣例就是會將這個class對應到資料庫中名為students (student的複數形式)的table,你不需要再額外設定告訴RoR要用什麼名字的table。而且Active Record的英文能力夠強,對於不規則的複數形式變化也應付自如,例如:Person => people。如果要利用到既存的資料庫,無法按照RoR的命名慣例,RoR當然也提供更改設定的方法,只是這麼一來,RoR提供的某些便利性也無法利用到了。 ERb (Embedded Ruby) 在View的這部份,檔案的副檔名為".rhtml",Rails看到這個副檔名就知道要使用ERb來展開該檔的內容。在此值得注意的是,controller物件中的instance變數是可以直接在View樣板物件中被使用的。 Scaffold(由資料庫自動產生可以使用的程式) 當你把資料庫建立好,接下來用一個簡單的Scaffold動作,你將擁有整個專案程式的雛形,也許使用者介面還不夠漂亮,但是程式已經堪用,它有最基本的CRUD(Create, Read, Update, Delete)功能。這邊同樣也應用了慣例取代設定的原則,整個專案的目錄架構也是有其慣例。 為什麼要用RoR呢? 多數人的答案是一開始就提到的「快速開發」。很多人用過以後都覺得開發效率提高數倍,而程式設計師寫的程式碼則簡潔許多。當然世界如此之大,不可能眾口一致,也有人持不同意見,有人考量到程式執行的速度,所以不敢貿然採用RoR,有人以執行的效能對RoR的作者DHH提出質疑,DHH的回答是:如果用Ruby無法突破瓶頸,那麼瓶頸部份用C 或其他語言寫也無妨,他們自己也是這麼做,但是你還是可以在開發初期善加利用RoR的高效能開發來節省時間。 哪些網站使用RoR? 目前使用RoR架構的網站是數以萬計的,其實勇於嘗新的人還不少,想知道哪些網站使用RoR嗎?請參考以下連結: http://wiki.rubyonrails.org/rails/pages/RealWorldUsage 另外簡單列出幾個不同性質的網站以供參考,首先看到Basecamp,其實RoR就是由Basecamp抽取出來的。
  • Basecamp線上專案管理系統
  • OpenCongress集合美國國會的新聞及官方資料
  • Revolution Health一個關於健康的入口網站
  • Twitter提供小型部落格及傳遞訊息服務
  • HEMiDEMi – (繁體中文)是社群式書籤分享網站,使用者在網路漫遊時,發現喜愛的書籤,就可以收藏在HEMiDEMi
RoR的願景 (REST, REpresentational State Transfer) 遵循REST的概念,所謂的REST,簡單來說就是「在對於網路上可用資源操作CRUD之類的動作時,使用適當的HTTP method (GET, POST, PUT, DELETE),而不用傳統以URL表示request的作法」。而RoR提供ActiveResource讓使用者開發REST-client 的網頁服務,ActiveResource的運作類似ActiveRecord,但是他運作的對象是網路上的所有資源,而不再只是資料庫裡的記錄。
CRUD operationREST method
CreatePOST
ReadGET
UpdatePUT
DeleteDELETE
Reference:Text book: Agile Web Development with Rails
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值