DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX詳解 >> Ruby On Rails非常酷
Ruby On Rails非常酷
編輯:AJAX詳解     

兩周前,到CSDN轉了轉,看看最近又有什麼新技術,發現通篇都在吹噓Ruby on rails,似乎說它要干掉Java了。連開源界的大哥大也放棄Python,開始鼓吹Ruby了。於是懷著好奇之心,去研究一下Ruby On Rails到底是什麼東西。

一年前其實是看過它的官方網站的,一篇快速入門沒有看懂,也就沒有深入。現在再來看,思路要清晰的多了。而此前剛剛研究過Zend PHP Framework,覺得它的MVC設計思路非常好。三種不同的東西分別放在不同的目錄它,只要在首頁加一個Dispatch,就能自動完成對路徑的分析,調用正確的Controller,並傳遞正確的參數,還順便解決了靜態化Url的問題。可惜,它的版本太低了,只有0.1.5,再怎麼說它穩定,也不敢用在商業環境中。它甚至還自己開發了Lucene的替代包,不再需要去調用Java接口了。不過目前也是剛剛出來的功能,只有最基本的一些功能而已,也不知道對中文支持怎麼樣。

讀完了Zend PHP Framework的官方文檔,再來看Ruby On Rails的架構介紹,這才恍然大悟,原來,Zend是照抄ROR的項目結構的。Python On Zope也研究過,但是它的開發模式感覺比較混亂,不同的東西放在完全不同的地方,找起來比較困難,而且思路完全不連續。但是ROR就不同了。它提供給你的是一個跟以前的開發基本完全一致的框架,只是已經幫你定義了各個目錄和文件的名稱而已。包括MVC,Helper,Test全部都定義好了。你只要往對應的目錄下加一個對應的文件,整個網站就運行起來了。而且最方便的是它的Generator腳本,可以自動幫你完成添加Model,Controller的工作,並順便幫你建立Test文件。而且它的數據庫腳本是使用Ruby的語言來定義數據庫結構,然後運行一下rake,數據庫就建好了。並且在開發的時候可以定義三種不同的數據庫環境(開發,發布,測試),在運行Test的時候,它會自動清除你以前的數據庫,然後自動重建,而這一切,都只發生在那個測試數據庫中。這些工作在其它語言的開發過程中,都是需要你自己來完成的,而且一不小心,可能就把你的開發數據庫給刪了。

如果只有這些,那麼ROR也只不過是個腳本生成器了。ROR還有一個強項,就是ActiveRecord,相當於Java中的Hibernate,自動完成ORM映射,不需要一行腳本或者配置文件,它可以自動從數據庫中自動表結構,並完成字段的映射。對多種數據表關系(Many-To-Many,One-To-One,One-To-Many)都有良好的支持,並且有一個非常好用的操作符“<<”,自動完成一系列的相關操作。

而且,ROR有著良好的Ajax的內在支持。它充分利用了prototype,將AJax調用最大限度的簡化。另外,對網站的框架式布局,和模塊式調用都有著天生的支持。

正是因為這些特點,ROR才敢號稱它的開發速度是Java的10倍。但是它的缺點也是相當明顯的,就是運行效率。目前來講,你可以用ROR快速開發,搶占市場,然後當程序真的無法承受運行壓力的時候,用Java來重構。經過JavaEye網站的實際使用,一台普通的2萬元以內的服務器,足以承擔日PV超過20萬的論壇程序。如果硬件足夠強勁,應付一個“豆瓣”都是沒有問題的。如果日PV超過了100萬,重構也不是什麼大問題了吧。

如今,我真的愛上這個東西了。雖然PHP界有Zend Framework,Python界有Django,都是模仿ROR的實現,但是當前來講,這些都還不是太成熟。我在使用Django的時候,數據庫亂碼的問題始終沒有解決。而且,Python的執行效率,比起同樣是腳本語言的Ruby,也不會高到哪裡去。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved