Ruby on Rails 是一個(gè)可以使你開發(fā),部署,維護(hù) web 應(yīng)用程序變得簡單的框架。

?

當(dāng)然了,所有的 web 框架都有同樣的目標(biāo)。是什么使得 Rails 如此不同呢?我們可以通過幾個(gè)途徑來回答這個(gè)問題。

?

第一是看架構(gòu)。在過去的時(shí)間里,許多開發(fā)者在嚴(yán)謹(jǐn)?shù)?/span> web 應(yīng)用程序上使用 MVC 架構(gòu)。他們發(fā)現(xiàn) MVC 架構(gòu)可以使他們的程序變得更清晰。(我們將在下一章更詳細(xì)討論 MVC )在 java 中象 Tapestry Struts 這些框架都是基于 MVC 。 Rails 也是一個(gè) MVC 框架。當(dāng)你使用 Rrails 進(jìn)行開發(fā),應(yīng)用程序的所有代碼以一種標(biāo)準(zhǔn)方式互相作用。在開始開發(fā)之前,整個(gè)應(yīng)用程序的骨架已經(jīng)搭好的。

?

回答這個(gè)問題的第二個(gè)是看編程語言。 Rails 程序是使用 Ruby 編寫的,它是一門現(xiàn)代,面向?qū)ο蟮哪_本語言。 Ruby 簡潔,不難理解。它可以讓你快速地用代碼自然 , 清晰表達(dá)想法。讓你的程序能很簡單被編寫并且在幾個(gè)月后還能很容易讀懂。

?

Ruby 有它自己的編程風(fēng)格,這對于 Lisp 程序員看起來會(huì)很熟悉,但是對于其他人來說還是相當(dāng)奇特的。這語言很容易編寫方法完成幾乎所有的動(dòng)作例如擴(kuò)張語法,一些人稱之為元程序。(具體概念參考 http://www.csdn.net/develop/article/18/18074.shtm )正好這是對我們很有用的。它可以使我們的程序更短,可讀性更強(qiáng)。它也允許我們完成通常需要在外部擴(kuò)展配置文件完成的一些任務(wù)。在接下去的一些事情,它做起來就更加簡單了。下面代碼是定義一個(gè) project ?,F(xiàn)在不需要擔(dān)心這里面的細(xì)節(jié)。相反,我們要想想這幾行代碼表達(dá)了多少的信息。

class Project < ActiveRecord::Base

?????? belongs_to :portfolio

??? has_on :project_manager

??? has_many :milestones

??? has_and_belongs_to_many :categories

???

??? validates_presence_of :name,:description

??? validates_acceptance_of :non_disclosure_agreement

??? validates_uniqueness_of :key

end

?