Rails 是一個開發網頁應用的框架,是用 Ruby 程式語言寫的,所以有時候會稱為 Ruby on Rails(RoR)。至於 Rails 詳細到底是什麼,讓我們用幾個要點來說明。
開發網頁要做的事情主要就是收到客戶端請求要如何處理、資料庫的存取,和結果的呈現。要做到這些事情的方法千百種,可以用不同的程式語言、不同的資料庫,程式的寫法風格也有很多種。又因為其中有些事情是大部分開發者都會要做的,總不會想要每次開發新網站都重複做一遍。所以有人就開發出了一套「框架」,提供了方便的工具,可以快速產生開發網頁的程式碼架構,開發人員就可以專注於撰寫網頁的商業邏輯。另一方面,框架也對於不同功能的程式碼要如何擺放、資料夾要如何配置、檔案命名、變數命名等等事情,有一些規定或是約定俗成的慣例。這樣的好處是能方便開發者之間的溝通,接手前人的專案時能夠更快熟悉上手。
Rails 有兩大開發哲學,分別是 Convention over Configuration(CoC)和 Don’t Repeat Yourself (DRY)。CoC 的意思是希望開發者只需要遵照一些 Rails 的慣例,就不必把所有細節都設定一遍。而 DRY 就是字面上的意思,希望程式碼能夠清楚明白,方便維護,也是一個軟體工程強調的概念。
MVC 是一個對於應用程式各項功能之間關係的描述,分別表示 Model、View、Controller,各自負責應用程式功能中的一部分。Model 負責資料的存取,View 負責呈現,而 Controller 控制應用程式的流程。這樣分類對於軟體開發的好處是功能各自獨立,修改時比較不會相互影響。另一方面和框架一樣,因為大家都知道 MVC 架構,也會讓開發者間溝通比較容易。