Ruby on rails的流行讓自己也忍不住去嘗試了一把,畢竟能夠號稱比java開發快10倍,僅這點就夠吸引人的了,初次使用下來,總體感覺就是和基于純java的開發來比自然是強很多,畢竟ruby on rails是個web開發框架,但如果以基于java的web開發框架去對比的話我倒是不覺得java的web開發框架效率就比ruby on rails低多少,也許是因為自己對ruby on rails了解不夠深入的原因。
來看看ruby on rails的一個典型的CRUD型的Web應用的開發過程(ps: ruby on rails也是遵循MVC的,所以大家對下面的開發過程也會挺熟的):
1、通過ruby on rails直接創建整個web應用,這時ruby on rails會幫你創建好所有這個web工程的目錄,相關的文件。
2、通過ruby on rails自動生成controller,當然,這個controller的方法體中是空的。
3、通過ruby on rails自動根據數據庫生成你的映射代碼,在數據型應用中可以把這個當為Model使用,此Model繼承至ruby on rails提供的一個base類。
4、通過在controller中調用一個函數,將剛生成的Model作為參數傳入,此時整個CRUD操作的開發就完成了。
5、通過頁面調用controller即可查看到ruby on rails默認生成的CRUD的東西。
6、當然,在實際的項目中,這個東西是不夠合格的,因此我們需要加入自定義的表單、顯示形式,這個時候我們就需要在表單、表格中采用類似jsp tag的東西調用ruby on rails返回的數據來進行展示。
在用ruby on rails的過程當中,應該說,上面的整個過程確實是比較快的,其中有挺多優點的體現:
1、整個web project的自動生成,這個在java的web開發框架中缺少。
2、所有的東西都是對象,類如可以采用po.find(1)這樣的方式。
3、函數式編程的支持,這個的好處在于可以在方法中傳入函數,這個對于很多時候做復雜邏輯處理會有很大的幫助,相當于數學中的高階。
不過象ruby on rails宣稱的約定優于配置這點,我倒不是那么的認同,我覺得配置未必就不好了,特別是在一種模塊化的構建體系中,配置非常重要,配置組裝系統,而不是通過約定,盡管配置本身其實也是一種約定。
對比目前開源的java web開發框架來講,確實好像沒有一個這么好用的框架,但我覺得象上面這樣的開發方式在N多公司自己的框架中應該都是有支持的,而且象數據型的開發也是現在java中的重視點,想想象bstek這些公司,呵呵.........在目前java這樣的框架中,象開發一個CRUD型的Web應用同樣不復雜:
1、基于框架的eclipse plugin創建一個基于框架的web project,此時同樣所有的目錄、文件、依賴lib、web project的部署方式等環境都同時搭建好。
2、編寫持久層對象類。
3、編寫數據集類。
4、綁定數據集至某種表現層組件,象表格、樹等等中。
5、部署,這個時候就可以看到一個默認的CRUD的東西了。
6、為了能夠實際的在項目中使用,可通過框架本身提供的控制接口綁定純的html的頁面到表現層組件上,控制頁面的布局、C和U時的表單頁面、查詢頁面以及分頁頁面,同時可通過控制接口控制該組件上可使用的操作以及顯示字段。
對比來說,我不覺得這樣的方式比ruby on rails低效多少,^_^....
而且象如果面對業務邏輯型的模塊,我想ruby on rails的那套東西和java的就更差不多了,彼此也許都是通過代碼生成器生成部分的代碼。
初次使用下來,應該說,我不覺得ruby on rails給我帶來多大的驚喜,象傳說中的那種比java開發快10倍的那種說法更是不認同,畢竟大家要想想,它是踩在多少巨人的肩膀上誕生的,但同時也不要忘了,象這種框架在java中并不少,不過開源的好像真沒有
不過必須承認,ruby on rails仍然是有不少優點的,特別是借著rails本身的優點,象一切皆對象(不過它的ORM的對象之所以支持po.find po.save這些是因為擴展base,^_^,這不算...),這點倒是很喜歡,還有良好的支持FP。
作為java的開發人員應該做的就是吸取其中的優點,^_^,對ruby on rails不熟,歡迎拍磚..