ruby on rails

ruby on rails

Ruby on Rails 是一個可以使你開發、部署、維護 web 應用程序變得簡單的框架。

來歷


於2004年7月,Rails的創始人大衛·海納梅爾·韓森從37signals公司的項目管理工具Basecamp裡面分離出Ruby on Rails,並且以開源方式發布。

主要特點


當然了,所有的 web 框架都有同樣的目標。是什麼使得 Rails 如此不同呢?我們可以通過幾個途徑來回答這個問題。
第一是看架構。在過去的時間裡,許多開發者在嚴謹的 web 應用程序上使用MVC 架構。他們發現 MVC 架構可以使他們的程序變得更清晰,在 java 中像 Tapestry 和 Struts 這些框架都是基於 MVC 。 Rails 也是一個 MVC 框架。當你使用 Rails進行開發,應用程序的所有代碼以一種標準方式互相作用。在開始開發之前,整個應用程序的骨架已經搭好的。
回答這個問題的第二個是看編程語言。 Rails 程序是使用 Ruby 編寫的,它是一門現代,面向對象的腳本語言。Ruby 簡潔,不難理解。它可以讓你快速地用代碼自然 , 清晰表達想法。讓你的程序能很簡單被編寫並且在幾個月後還能很容易讀懂。
Ruby on Rails是一個 Web 應用程序框架,是一個相對較新的 Web 應用程序框架,構建在 Ruby 語言之上。它被宣傳為現有企業框架的一個替代,而它的目標,簡而言之,就是讓生活,至少是 Web 開發方面的生活,變得更輕鬆。
J2EE是一種利用Java平台來簡化企業解決方案的開發、部署和管理相關的複雜問題的體系結構。J2EE技術的基礎就是核心Java平台或Java平台的標準版,J2EE體系結構提供中間層集成框架用來滿足無需太多費用而又需要高可用性能高可靠性以及可擴展性的應用的需求。
Java平台有3個版本,它們是適用於小型設備和智能卡的Java平台Micro版(Java 2 Platform Micro Edition,J2ME)、適用於桌面系統的Java平台標準版(Java 2 Platform Standard Edition,J2SE)、適用於創建伺服器應用程序和服務的Java平台企業版(Java 2 Platform Enterprise Edition,J2EE)。
Ruby on Rails和 J2EE 堆棧的比較
可以看到,Rails 堆棧和構成普通的基於 J2EE 的 Web 應用程序的組件之間的基本區別很小。兩者都有用來執行應用程序代碼的容器;都有幫助分離應用程序的模型、視圖和控制項的 MVC 框架;以及持久存儲數據的機制。

習慣約定優於配置


這個思想貫穿了 Rails 設計的始終。舉個例子,通常我們寫java web 應用程序,都會按照 MVC 來給對應類做區分,我個人喜歡將 Controller 類放在 web 目錄中,將 View 類放在 view 目錄中,將 model 類放在 domain 目錄中。但是不同的人有不同的設置,不同的命名,如何讓框架知道這些不同的目錄呢,java 框架的解決之道,只能是通過 xml 配置文件讓它了解這些信息。而 rails 的解決方式就是:目錄結構我來定義,你只要在我定義好的目錄中放東西就可以了。這也就是為什麼 rails 中很少有配置文件(但不是沒有)的一個重要原因。雖然思想很簡單,但是它帶來的好處就是,Rails 的開發效率是 java 開發的 10 倍(這是 rails 的 fans 宣稱的,不過我相信這點,相信看完這篇文章你也一定會的)。那麼光這點就能讓 rails 開發比採用 java 更快了嗎?不完全是這樣,因為這還得益於 rails 的另外一個設計理念:更少的代碼。並不是任何語言都能那麼宣稱的,rails 實現這點完全得益於它的設計語言 Ruby 。使用 Ruby 你的確能用很少的語言寫很多的功能,這是其他語言所無法實現的。想要掌握Rails,你一定要了解 Ruby。

生成器


ruby on rails使用的實時映射技術和元編程技術,免去了開發人員在開發過程中編寫大量樣板文件代碼的煩惱。在少數需要使用樣板文件代碼的時候,開發人員可以通過ruby on rails內建的生成器腳本實時創建,而不再是通過手工編寫。rails的這個特點可以使開發人員更專註於系統的邏輯結構,而不必為一些瑣碎的細節所煩擾。