ROR is Ruby on Rails. Ruby 眾所周知已經(jīng)是一種非常出色的動(dòng)態(tài)語(yǔ)言 It‘s dynamic language。Simple and easy.動(dòng)態(tài)語(yǔ)言是解釋執行的,但性能上可能會(huì )打個(gè)折扣,但不是絕對的,因為應用是復雜的,性能是一種綜合性的,這個(gè)在一個(gè)流傳的測試中有回應。
按照Rails4Days.pdf
1.安裝和配置出奇的簡(jiǎn)單。
(真的很想提醒一下所有的java社區,充斥著(zhù)各種框架的各個(gè)社區難道就沒(méi)想到install嗎?Everyone forgot to make install? 無(wú)論是J2EE,Spring,Hibernate,Struts等等,全部都沒(méi)有 install。所有apache‘s jakarta的項目,竟然都沒(méi)有install的,struts只有一個(gè)war,象一個(gè)demo,這種艱苦的環(huán)境會(huì )讓linux fans笑倒的,ant和make都一樣,怎么樣也不能叫install。)
安裝完ruby182-14.exe,就用gem來(lái)安裝rails。
gem是ruby的install。gem install rails 就可以了。在回答問(wèn)題的時(shí)候選y。
2.要生成一個(gè)web應用更簡(jiǎn)單。
ruby rails <目錄名>
一套web應用就生成了,配置一下數據庫。config/database.yml,看一下就知道配置。
mysql要準備好,再創(chuàng )建數據表。
3.代碼生成
ruby script/generate <類(lèi)型> <名稱(chēng)>
MVC都能生在,框架也可以,還有WebServices
http://rubyonrails.org/show/Generators
還有生成器可以下載,實(shí)在得令人心寒。
當Hibernate3,EJB3還在那兒繞來(lái)繞去的時(shí)候,Spring,Hivemind還在那兒遮遮掩掩的時(shí)候,MDA和UML還在云山霧照的時(shí)候,ROR已經(jīng)實(shí)干了。
可以代碼生成,CRUD只要一句話(huà),可以說(shuō)演示非常方便,生成的代碼量非常小,改起來(lái)很方便,使用一段時(shí)間就覺(jué)得很貼近業(yè)務(wù)思路,或者說(shuō)人類(lèi)語(yǔ)法。展示層還是象大多數嵌入式腳本,類(lèi)JSP。但是由于是動(dòng)態(tài)語(yǔ)言,非常精簡(jiǎn),實(shí)際上看上去比標簽精簡(jiǎn)多了。
缺點(diǎn):
大型應用是否支持?
有多少人支持?
性能?
總的來(lái)說(shuō),人們對ROR的擔心在于:能長(cháng)久嗎?程序是否穩定?各項性能?
有一個(gè)性能測試,據說(shuō)ROR>Hibernate+Spring+Struts , 居然還多15-20%。敢這樣說(shuō)總有點(diǎn)來(lái)頭的,況且開(kāi)發(fā)速度要>10倍以上。不過(guò)網(wǎng)址忘了,google上查一下就知道了。
被各種框架折磨了很長(cháng)時(shí)間,突然發(fā)現這么一個(gè)清新的東西,一直不習慣,怎么能這樣呢,DAO總是要定義一個(gè)Base的,同一種find函數要寫(xiě)十個(gè),現在怎么能這么簡(jiǎn)單呢,簡(jiǎn)單地都變成隨意了。find_all就行了?find(@params[:id])就直接從參數里查詢(xún)出對象?從Tapestry還要OO,比Hibernate還要ORM,這簡(jiǎn)直是一種魔鬼。還能和C接口,關(guān)鍵業(yè)務(wù)放到C里去。比MVC還要MVC,目前為止明顯的問(wèn)題還是美工無(wú)法分離的問(wèn)題,因為<%for%>這樣的代碼美工不可能來(lái)處理的。
對象與數據庫的連接更自然了,這讓我想起了Delphi,由于只有Borland在控制,Object Pascal得以很優(yōu)美,VCL很完整,ruby也是這樣?
看上去ruby吸收了非常多的java社區的思想,這也是一種有活力的表現,如果這種勁頭保持下去,會(huì )象php一樣來(lái)傳染互聯(lián)網(wǎng)。雖然php現在已經(jīng)有老了的感覺(jué),但由于一開(kāi)始的清新空氣使它一直生存到現在。
ROR非常適合做應用,快速應用,這并不意味著(zhù)不適合大型應用,目前因為還沒(méi)看到大型應用,不敢亂說(shuō),心里也沒(méi)底。底層應用不知道是否適合,因為一般來(lái)說(shuō)底層應用往往是中級語(yǔ)言的世界,象C之類(lèi),Ruby應該也可以port進(jìn)來(lái),不過(guò)直接做底層可能性不大吧。
想起了以前對Perl的形容,膠水,很貼切,本身好象做不了啥事,但可以迅速地粘起來(lái)一個(gè)東西來(lái),如果膠水強度足夠,甚至粘出一個(gè)大廈。Ruby也象是這樣的膠水,現在在web方面比perl更強了。
(剛打出了“惡業(yè)胃”三個(gè)字,猜一猜是什么意思?)
最后說(shuō)一句,fastcgi怎么也裝不上,fastcgi for apache已經(jīng)裝好了,好象是fastcgi for ruby裝不上。
參見(jiàn):
ruby for apache:It‘s one-click install on windows and apache2 http://rubyforge.org/projects/rubyforapache
fastcgi with ruby: http://wiki.rubyonrails.com/rails/show/FastCGI
document for rails: http://documentation.rubyonrails.com/
聯(lián)系客服