高效率的網頁開發平台「Ruby On Rails」
 
聯絡我們
會員登錄
購物車


首頁 書籤 最新訊息 其他
IT辭典 IT技術動向 IT和經營結合 系統導入 系統基盤建置 系統營運管理
張士超
東京工業大學經營工學科畢。現任IT綜合情報網編輯。

高效率的網頁開發平台「Ruby On Rails」

「Ruby On Rails」為David Heinemeier Hansson氏所開發出的網頁開發平台(Web Application Framework)。平台上使用的網頁開發文稿語言(Script)為日本「網路應用通訊研究所」(NaCl)的MATSUMOTO YUKIHIRO氏開發出的Ruby Script。「Ruby On Rails」是一種公開程式碼(OpenSource),可以自由從公式網站下載,目前的最新版本為2008年11月21日Release的「Ruby on Rails 2.2」,可以從開發專案網站下載。最新版本在不用做任何設定下,能夠處理多國語言,比之前更走向國際化。HTTPのETag/Last-Modified的對應也經過改善,減輕網頁更新判斷處理的負荷。程式執行單位的線程(Thread)的獨立性亦提高,個個的線程不會相互影響。

更先進、更快速、支援多國語系的Ruby 1.9.1版

比「Ruby on Rails 2.2」中使用的Ruby 1.8.7更新的版本Ruby 1.9.1 的 preview 版本於同年12月25日釋出,它是Ruby 1.9 系列的第一個穩定版本,可以從中文的公式網站下載。在這版本最大的特色就是對應虛擬主機VM,將「YARV」(Yet Another Ruby VM)虛擬主機VM程式碼放入Ruby1.9中,取代原本的處理程序繁瑣的抽像的語法樹狀AST(Abstract Syntax Tree),達到高速化和最適化。實際上,Ruby1.9在使用正規化檢索上,並沒有比Ruby1.9版快,但是在變數的帶入和迴圈等一般處理上,可以快上1.5倍左右,如果文字處理少的話,更可以快上2倍。

導入「YARV」(Yet Another Ruby VM)之外,有較大改變的還有就在文字處理上,能夠支援多國語系。在Ruby1.8版之後,就決定「內部不採用任何文字碼」的方針,減少文字碼之間變換程序和變換過程中發生的錯誤。實現此方法就是在文字列上的每個文字都賦予「編碼(Encode)」的資訊,從這資訊上可以得知這個文字是使用甚麼文字碼。

另外,Ruby在處理像java的Iterator非常麻煩,因此在Ruby 1.9.1版導入Fiber的功能。Fiber是為了安裝Generator時使用。Ruby 1.9還將類似的函數(Library)整合一起,像在1.8版中和Generator函數(Library)類似的還存在有Enumerator函數(Library),經過整合後最後只剩下輕量的Enumerator函數(Library)。

高效率的網頁開發架構

Rails的網頁開發平台採用MVC架構,MVC分別為模型(Model)、外觀(View)以及控制器(Controller)。模型(Model)負責處理應用程式,外觀(View)負責將模型處理過的內容轉換成網頁的外觀,控制器(Controller)則是接收用戶端網頁瀏覽器的要求,分派工作給模型(Model)、外觀(View)處理,並且將處理的結果再傳回給用戶端瀏覽器。採取這種明確的分工方式,能夠簡化應用程式的建立與修正,各部份的程式碼亦變成更容易閱讀。

Ruby架構

在建立一個專案時,利用"rails"指令立即能夠簡單快速產生新專案的雛形(skeletion),也就是產生出專案的目錄以及初期檔案。再利用控制器產生指令(ruby script/generate controller)產出指定的控制器以及外觀的雛形檔,其中控制器的雛形檔(*.rb)會產生在"專案根目錄/app/controllers/"下。外觀的檔案(*.rhtml)會產生在"專案根目錄/app/views/"下。另外模型(Model)的產出,則藉由模型產生指令(ruby script/generate model)產出模型於"專案根目錄/app/models/"下。

RubyGems為Ruby標準的函式庫的管理系統,可藉由"gem install "指令安裝應用程式所需的共用函式庫。除此網路上還提供許多的「外掛模組」,像會員認證的「LoginEngine」外掛模組等,可藉由"ruby script/plugin"的指令下載以及管理。有效的利用這些函式庫和外掛模組,可以縮短開發的時間。

接續資料庫亦相當容易,在"專案根目錄/lib/tasks/"下的rake file設定資料庫名稱、登錄時的使用者名稱、密碼等之後,執行rake指令就能夠接續到指定的資料庫。建立資料庫時,使用migration產生指令(ruby script/generate migration)在"專案根目錄/db/migrate/"下,產出建立資料庫的程式檔(*.rb)後,修改建立資料庫的程式檔的內容,執行"rake db:migrate"的指令就能建立新的資料庫。更令人驚奇的是,藉由Scaffold能夠讀取資料表的結構,自動產生資料庫新增、刪除、修改、顯示的維護畫面。減少不少開發的工時,但是不喜歡原始的維護畫面,還是要人工做些修改。


top