2009年Rails框架 優(yōu)化性能積極改進(jìn)
Rails 2.3將優(yōu)化性能和記憶存儲(chǔ)
隨著本月Rails多種功能的升級(jí)和與Merb網(wǎng)絡(luò)框架合并。相信對(duì)于Ruby on Rails Web應(yīng)用開發(fā)架構(gòu)來說,2009年是忙碌的一年。
首先是開源Rails架構(gòu)2.3版本的發(fā)布,該版本優(yōu)化了定制模板和存儲(chǔ)量性能,并且能夠用Ruby寫性能最依賴部分。Rails 2.3還具有HTTP摘要式身份驗(yàn)證,一個(gè)API身份驗(yàn)證。
Rails 2.3及早地利用了Merb長(zhǎng)處,Rails 3.0預(yù)計(jì)在五月左右成形,作為合并后的Merb-Rails發(fā)布,2.3版本在某些方面是3.0版的前奏,其性能提升帶來了從Merb。
例如,Rails 2.3的respond_to阻止功能,允許一個(gè)應(yīng)用程序響應(yīng)單獨(dú)的HTML,XML或JavaScript的請(qǐng)求,而這比原來的版本要快百分之八。
2.3版本的其他變化與Merb無關(guān)。例如,新的模板功能中添加了許多模板創(chuàng)建的具體功能,如插件,而不是僅僅空有一個(gè)架子。可以增加一個(gè)插件,例如,為確保由RSpec框架而不是默認(rèn)的單元框架測(cè)試應(yīng)用程序,頁碼標(biāo)注插件也可以添加在模板中。
2.3版本的機(jī)架功能充當(dāng)共享基礎(chǔ)結(jié)構(gòu),這使不同的Ruby架構(gòu)更易于同時(shí)運(yùn)行。例如,開發(fā)人員可以Rails項(xiàng)目中添加一個(gè)建立在更輕巧的Sinatra架構(gòu)上的應(yīng)用程序。
2.3版本的Rails Metal功能讓開發(fā)人員可以直接用Ruby編寫應(yīng)用程序的某部分以提高性能。Rails Metal基本上是Rails的匯編程序,你可以丟棄所有的預(yù)置功能,這樣你通??墒褂肹it]來為一小部分應(yīng)用程序加速。
Rails 3.0 將吸收Merb的優(yōu)點(diǎn)
和2.3版本的一些卓越功能一樣,Rails 3.0看起來會(huì)有更大的升級(jí)。5月,在拉斯維加斯舉行的RailsConf上預(yù)計(jì)會(huì)發(fā)布一個(gè)候選的版本。
Rails 3.0將充分利用Merb的努力。Rails與Merb的合并也是因?yàn)樗麄円庾R(shí)到彼此的目標(biāo)都是一致的。
所有的Merb成員都曾是Rails的開發(fā)者,他們創(chuàng)建Merb ,因?yàn)樗麄冇幸幌盗懈信d趣的問題,如性能優(yōu)化和有關(guān)Rails架構(gòu)的不可知論。例如,Rails對(duì)對(duì)象關(guān)系映射使用活躍記錄,而Merb支持者希望使用DataMapper或Sequel。
Rails 3.0將給Merb帶來改變,如架構(gòu)不可知論將融合Rails側(cè)重于強(qiáng)效默認(rèn)設(shè)置理念。 Merb希望通過插件擴(kuò)展Rails而發(fā)布API的想法也將是合并內(nèi)容之一。
現(xiàn)在,對(duì)于Rails插件來說,不良生態(tài)系統(tǒng)已經(jīng)令人難以置信。就是因?yàn)槿狈γ鞔_的API ,所以Rails更新的時(shí)候,插件往往違規(guī)。Merb所帶來的還有映射瀏覽器請(qǐng)求的路徑選擇。Merb在這方面提供的選擇比Rails要多。
Merb致力于Rails棧。最初創(chuàng)建Merb架構(gòu)的目的是為解決Rails中異步處理的問題。 當(dāng)時(shí),Rails是一個(gè)單線程應(yīng)用程序,使用Rails的進(jìn)程來處理,所以例如文件上傳這樣的操作是不允許的。Merb最初創(chuàng)立時(shí),專門為解決文件上傳的問題,隨后它迅速成為其他不滿足于Rails的人的一種共識(shí)。
基本上,Rails與Merb的發(fā)展方向是一致的(Merb和Rails都由Ruby分化而來,兩者都是開源項(xiàng)目)?,F(xiàn)在的合并是Merb成員選擇加入到Rails的團(tuán)隊(duì)中。兩隊(duì)合并將更有助于我們創(chuàng)建一個(gè)架構(gòu),且該架構(gòu)將兼具Rails和Merb的優(yōu)點(diǎn)。
Rails與Merb合并帶來的連鎖反應(yīng)
有一些在線評(píng)論,對(duì)這種競(jìng)爭(zhēng)性質(zhì)的合并給予了一些批評(píng)。但是Rails的顧問Jade Meskill卻支持兩大架構(gòu)的合并,他強(qiáng)調(diào)這樣的結(jié)合為Ruby社區(qū)帶來了團(tuán)結(jié)。競(jìng)爭(zhēng)肯定是有價(jià)值的,特別是對(duì)于這個(gè)領(lǐng)域,對(duì)于這一特殊的技術(shù)。
Meskill預(yù)計(jì)合并所帶來的好處之一就包括,作為開發(fā)語言之一的Ruby和作為Web平臺(tái)的Rails都將獲得更廣泛的認(rèn)可?!昂喜⒋_實(shí)提供統(tǒng)一,但有可能會(huì)出現(xiàn)和形成的又一類似的項(xiàng)目”,IDC的應(yīng)用軟件開發(fā)項(xiàng)目負(fù)責(zé)人兼分析師Al Hilwa稱,“有可能是Merb的一種增值”。
【編輯推薦】