RoR,Ruby on Rails
強調慣例先於設定和不自我重複原則,創造敏捷網站應用程式開發法則,成為Web 2.0時代備受矚目的框架

Ruby on Rails(RoR)是利用Ruby腳本程式語言寫成的開發框架,由David Heinemeier Hansson在所屬公司的專案中提煉產生。

RoR為了因應Web應用程式在開發過程中變動頻繁的特性,導入了二大原則。這套框架首先強調慣例先於設定(Convention Over Configuration),它在類別、方法、資料表,以及目錄結構,都採取固定的命名約定。不管是開發還是維護工作,只要依循這個法則命名或檢視,程式碼都能保持簡單、輕巧。

另外一個的特色是DRY(Don't Repeat Yourself),強調開發過程中降低重複性高的工作,例如在RoR的MVC架構中,View可以透過Helper、Partial等方式做到DRY。

RoR導入Active Record實作物件/關聯資料庫的對應,也使用Action Pack,處理Controller和View之間的運作。此外,應用Scaffold產生臨時性的應用程式介面,或是完整的自動化測試機制等,都讓RoR具備較快的開發速度與程式品質。文⊙黃天賜

Action Pack
Action Pack框架
Action Pack框架是由Action Controller與Action View組成,用來處理用戶請求與產生回應輸出。

Rails是將Web伺服器送來的URL進行剖析,將網域名稱後面表示Web資源的字串,拆成controller、action以及資源的識別符。分配器呼叫URL上的controller之後,由Action Controller接手之後的動作。當action決定使用的樣版之後,再由Action View負責處理動態產生樣版。

Active Record Pattern
Active Record模式
Active Record模式是由Martin Fowler提出,它是解決物件、資料庫對映的一種設計模式,而Rails也實作出這種模式。它透過record物件操作資料表,每個record代表資料表裡的一列,並且每個Active Record物件都有新增、修改、刪除的方法,得以存取資料庫。這種方式讓資料表與應用程式物件之間,具有直接對映的優點。導入Active Record,讓開發人員能用最少的設定檔,達到快速開發的目的。

Agile Web Development
敏捷網站開發
在RoR的開發概念中,認為網站開發是與客戶互動的過程,因此變動是一種必須接受的現實,而Rails便是在應付這種不斷變化的框架。它企圖減少必須撰寫的程式碼與設定檔,讓開發人員專注在商務邏輯上。

此外,在部署維護上,開發人員如果更動程式碼,不必重新啟動網頁伺服器或重新部署應用程式,即可檢視異動結果,這些便利都能增加生產力。

Generator
程式碼產生器
如果看過Ruby on Rails官方網站的示範影片,一定會對它的程式碼產生器留下深刻印象。RoR的程式碼產生器是透過命令列環境中,執行Ruby腳本程式,自動產生相關的程式碼與目錄結構。例如開發人員輸入腳本指令,建立一個controller,生成器就會自動產生像是view或測試程式等檔案,開發人員就能在這些檔案上繼續加工。程式碼產生器在RoR高速開發中也占有重要地位。

Migration
遷移
Migration是Ruby on Rails的資料表控制功能,結合Active Record,它能擺脫特定資料庫的SQL語法束縛,用自定語法新增、定義與修改資料表。此外,它具備的版本控制功能,透過Migration,每個修改資料表的動作會自動指定版本號碼,因此開發人員可以隨時退回或前進到特定的版本。在實務上,Migration相當好用,如果上線之後發現執行上的問題,透過一個指令,就能協助開發人員退回之前的穩定版本。

Mongrel
雜種動物、混血兒
Mongrel是Zed Shaw用Ruby語法寫成的網頁伺服器,開發之初便是為了解決Ruby的效能問題,Ruby on Rails所開發的應用程式同樣也適用。

與RoR內建的WeBrick網頁伺服器相比,Mongrel的執行速度與穩定度高,在使用上也比Apache更容易。另外Mongrel具備的叢集功能,也讓它在速度、穩定、安全等上更為突出。

Ruby
Ruby腳本語言
Ruby是直譯式的物件導向語言,由松本行弘在1993年所開發。松本行弘有感於Perl的強大,但是語法卻不夠漂亮,於是便在Perl概念之上,加入物件導向概念,在1995年正式釋出。Ruby提供簡潔的語法、完整的物件導向能力,並內建正規表達式(Regular Expression)引擎,在處理文字上有相當優異的表現。另外像是具備異常處理機制、自動垃圾收集和可攜性等特性,都是Ruby廣受好評的原因。

Scaffold
鷹架
Scaffold是Ruby on Rails因應需求經常變更而產生的實務做法。透過Scaffold方法,當資料模型(也就是關聯資料庫的資料表)新增或異動時,使用者介面會自動產生或跟隨調整,並為物件增加新增、修改、刪除、列表等方法。即使因為需求更動,介面必須跟著調整,只要透過Scaffold的方法,操作介面就會立即自動更新。另外,Scaffold提供轉換功能,能將Scaffold產生的動態頁面轉換成實際語法。

Test Driven
測試驅動
將測試融入開發過程,是Ruby on Rails的一大特色與優點,它提供單元測試可以用來驗證資料模型;功能測試可以檢查controller是否運作良好;整合測試是用來了解控制器之間是否正常互動。

RoR會在專案檔產生時,便建立「test」的資料目錄和輔助方法檔,並伴隨著程式開發,自動產生單元測試、功能測試的檔案。這些機制,讓測試驅動的開發模式更容易進行。

熱門新聞

Advertisement