Ruby on Rails 是一個可使你開發,部署,維護 web 應用程序變得簡單的框架。在2004年7月,由Rails的創始人大衛·海納梅爾·韓森從37signals公司的項目管理工具Basecamp裏面分離出來,而且以開源方式發佈。java
主要特色 web
固然了,全部的 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的這個特色可使開發人員更專一於系統的邏輯結構,而沒必要爲一些瑣碎的細節所煩擾。
網站應用程式架構
來源:http://baike.baidu.com/link?url=0AadnMDxce2m-YOEoZZoGMlx4nfTVNUlz53fGk_78c_0fmcXVKd7C6mhLjjbON44編程