自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

幾種實用型Ruby Web開發(fā)框架介紹

開發(fā) 開發(fā)工具
Ruby Web開發(fā)框架除了Ruby on Rails之外其實還有很多實用的,比如:Merb;Camping;Nitro;Ramaze;Sinatra;IOWA等等。

大家在通過對Ruby的學習后,都知道,Ruby on Rails是一款性能非常優(yōu)越的Ruby Web開發(fā)框架。但是其他的Ruby Web開發(fā)框架又有多少人知道一二呢?#t#

Rails盡人皆知,有人甚至可能聽說過Merb和Camping,但是否有人知道Nitro、Ramaze、Sinatra、IOWA或者Cerise?本文對這些框架進行一個快速瀏覽,并試圖解讀他們?yōu)闃I(yè)內(nèi)人士欣賞(或忽視)的原因。

之前我們討論過Merb,這也許是完成度最高的Rails替代者。Merb項目的活躍程度非常高,并且在一些情況下得到了實際使用??梢哉f它是與Rails最為接近的Ruby Web開發(fā)框架。

Camping將自己定義為一個代碼量保持在4k字節(jié)大小以下的Web開發(fā)框架。這個項目已創(chuàng)建了22個月,并由whytheluckystiff維護。一個完整的web應(yīng)用可以在單一文件中定義,同時遵循MVC框架(這使得web應(yīng)用以后更易于移植到Rails之上)。Camping使用ActiveRecord作為ORM解決方案;模板系統(tǒng)使用Markaby。Camping的開發(fā)一直以穩(wěn)定的步伐向前推進。

Nitro是一個有三年歷史的“Web 2.0”框架。在一段時間銷聲匿跡之后,開發(fā)者George K. Moschovitis又開始活躍起來。Nitro應(yīng)用的服務(wù)器端以Ruby寫成,客戶端以Javascript開發(fā)。Urubatan最近對其進行了評價。與Rails注重按照習慣編程相反,Nitro更加靈活。Nitro支持開發(fā)基于Model-View-Controller的應(yīng)用,同時支持非MVC、php風格的應(yīng)用開發(fā)。Nitro使用xhtml文件,并定制的Ruby標簽作為模板系統(tǒng)。

Nitro還使用了它自己的持久層,名為Og(ObjectGraph)。Og允許arbitrary Ruby對象的序列化。在attr_accessor中標記為Object(或Array或Hash)之后,引擎會序列化對象的YAML轉(zhuǎn)儲堆。Og同時支持任意對象圖。Og提供自動化數(shù)據(jù)庫進化功能:當Ruby類變更后,Og會進行自動檢測,同時改變對應(yīng)的數(shù)據(jù)庫。有些人總是會忘掉ActiveRecord的Migration功能。

Ramaze是一個存在了6個月的輕量級Ruby Web開發(fā)框架。它在構(gòu)建時基于下列廣為人知的Ruby Web開發(fā)框架原則:

◆KISS原則(Keep It Super Simple)

◆POLS原則(最小驚訝原則:Principle Of Least Surprise)

◆模塊化設(shè)計

◆最小化依賴

◆文檔

◆開放式開發(fā)

◆BDD開發(fā)/實例

Ramaze是MVC Web開發(fā)框架,使用自己名為Ezamar的模板系統(tǒng)。但是你同樣可以使用Markaby、HAML、Liquid或ERB來替代Ezamar。Ramaze不提供默認的ORM(對象-關(guān)系映射),你可以使用你自己的選擇:ActiveRecord、Og...它支持諸如Cache等高級使用,web應(yīng)用可以通過Mongrel或Evented Mongrel來搭建。你可以在Ramaze wiki上發(fā)現(xiàn)更多細節(jié)。

Sinatra是一個剛開發(fā)了一個月的DSL web開發(fā)框架。Ron Evans對其進行了簡要評價。它與Rails的主要差別在于它不是基于Model-View-Controller模式的框架。Sinatra是基于最小化的DSL語法開發(fā)的,它的小型基礎(chǔ)核心中不包括諸如ActiveRecord這樣的模塊。通過使用get/post action定義,Sinatra具備動態(tài)路由定義功能。Ron指出,Sinatra不是為Robust web應(yīng)用開發(fā)的,而是為了用來搭建小型的原型,其中的混合業(yè)務(wù)邏輯和展示層并不是問題。

那這樣做有什么好處呢?API實現(xiàn)、快速的最小化應(yīng)用以及那些不需要Rails中的功能 (比如ActiveRecord)的web應(yīng)用開發(fā)??梢杂脕韺γ姘遄钚?yīng)用進行控制,或者是widget。

與其他框架相比,IOWA在近三年的時間里都不活躍。Cerise有一年的時間都沒有活躍,因此我們不會深入探討它們。

像Rails一樣,Nitro有其自己的完整核心,其他Ruby Web開發(fā)框架試圖越小越好,并允許用戶自由使用他們喜歡的ORM、模板系統(tǒng)等等。即使這些框架可能缺乏文檔,甚至有些框架不具備這么多的功能、流行程度、對Rails的使用等,它們?nèi)匀恢档靡豢础?br />  

責任編輯:曹凱 來源: ddvip.com
相關(guān)推薦

2019-12-19 11:19:02

區(qū)塊鏈實用型Linux

2022-06-15 15:23:03

實用型代幣加密貨幣以太坊

2009-01-20 15:28:42

無線路由華碩RT-G31

2010-04-14 17:29:33

Oracle數(shù)據(jù)庫

2012-06-27 14:04:20

宏碁投影機

2012-06-19 13:51:20

飛利浦傳真機

2011-10-27 14:40:24

筆記本評測

2009-12-15 11:31:53

Ruby self

2009-12-17 11:14:50

Ruby on Rai

2012-06-12 13:33:38

HTML5

2010-04-09 19:08:31

甲骨文Oracle應(yīng)用顧問

2009-12-15 18:39:36

Ruby Active

2011-05-29 13:41:55

噴墨打印機首測

2019-09-05 14:41:22

Java后臺框架

2009-12-16 15:14:43

Ruby on Rai

2012-09-18 11:02:10

ASP.NETC#Web Forms

2012-05-29 14:27:40

Google創(chuàng)新

2013-08-26 10:51:56

Web開發(fā)框架

2017-07-18 15:13:17

2012-05-25 14:04:02

Google
點贊
收藏

51CTO技術(shù)棧公眾號