First they ignore you
          then they ridicule you
          then they fight you
          then you win
              -- Mahatma Gandhi
          Chinese => English     英文 => 中文             
          隨筆-221  評論-1047  文章-0  trackbacks-0

          對Grails之誤解

          作者 Geoffrey Wiseman譯者 Jason Lai 發布于 2007年7月11日 下午8時30分

          社區
          Java
          主題
          JRuby,
          Ruby on Rails

          Grails開發團隊成員Marc Palmer發表了一篇博客文章,針對開發人員對Grails常見的一些誤解逐一進行了說明。例如針對“對于我來說,Grails還不夠成熟”,他這樣回應:

          針對這個誤解,我想不斷增長的商業網站數量就是最好的答案了。同時,Grails也是基于HIbernate、Spring和SiteMesh這些成熟完善的框架構建的,更不用說作為萬年常青樹的Java JDK了。Groovy項目都已經有超過三年的歷史了。

          接著,對于“Grails使用的是一門解釋型語言(Groovy)”這個誤解,他談到:

          Groovy在運行時自動編譯成Java虛擬機字節碼,它絕絕對對徹徹底底不是一門解釋型語言。句號。絕不。我說了絕不了么?一點兒也沒錯。

          最后,討論到Grails是否支持Rails的一個克隆產物,他如是回答:

          Ruby on Rails引入了不少非常好的主意,并將它們合為一體。Grails將其中的一部分應用到了Groovy/Java的世界中,但加入了許多Ruby中并不 存在的特性和概念,所有這些東西都是以一種對Groovy和Java程序員有意義的方式展現給他們的。

          Graeme Rocher順勢而上,也提出了自己的Grails誤解和問題列表,比如說“在我們有了JRuby on Rails之后,誰還要Grails呢?”:

          這個問題很有代表性,也是對“Grails到底是什么”最大的誤解之一的根本所在。JRuby on Rails是讓Rails運行在像GlassFish這樣的Java EE容器上非常優秀的方式之一,就是這樣而已。但Grails的目標卻大為迥異,它并不是Rails在Groovy語言上的一個移植版本,而是將業界內最 為強悍的組件(比如說Spring、Hibernate、Quartz、Compass和SiteMesh等)以最佳方式組合起來的一個實踐,并通過采納 無配置規約(Convention-over-Configuration,CoC)使它們符合“不重復(Don't Repeat Yourself,DRY)”原則。

          我們并不是在重造輪子,而且由于Grails內核的絕大部分都是以Java編寫的,它也顯得更加強壯和穩定。事實上,從內核角度看Grails是一個 Spring MVC應用,可以被部署到所有的主流容器之上,不僅僅只有Glasshfish,還有大型商業容器,比如說WebLogic、WebSphere和 Oracle AS。

          再有,“為什么Grails比Rails更適用于企業應用?”:

          原因很多,最顯著的兩個原因就是Spring和Hibernate。到目前為止,有不計其數的組織在采用Spring和HIbernate,他們都有既有的Spring上下文環境,以及已經構造好的Hibernate領域對象等。

          在我開始參與Grails項目之前,我就經歷過同樣的情況。我們設計Grails的目的就是為了讓它和這些框架盡可能無縫地整合起來。因此,我們打個比 方,你可以把一個用Java編寫的Hibernate領域模型及其對應的配置文件直接扔進Grails應用中,然后就可以使用動態的查詢方法,并且直接使 用GORM了。

          此外,Grails控制器使用了標準的Servlet API對象(如request、response和session等),因此可以和其它的Servlet一起使用。畢竟,掀起它的蓋頭之后,我們會發現它 不過是一個Spring MVC應用。另一方面,Rails幾乎是按照和EJB2一樣的方式設計的(在我發現這點時,怎一個“震驚”二字了得!)。也就是說,你在擴展 ActiveController和ActiveRecord等框架對象時,你也就被綁定在了這套框架上。

          在Rails里面根本就不存在領域模型的說法,Rails的模型就是數據庫表。這當然是一件好事了,但在企業內部,同一個領域模型可能會在許多不同的應用 中服用,比如說桌面應用和Web應用。在Java里,這實際上是非常成熟完善的,通過把類對象及相應映射文件打包成一個JAR文件即可。

          親愛的讀者,關于Grails,您還存在什么問題嗎?或者您還見過對Grails用途的其它誤解么?請在InfoQ的Java社區與我們一同分享吧。


          原文地址:http://www.infoq.com/cn/news/2007/07/grails-misconceptions

          附:朝花夕拾——Groovy & Grails

          posted on 2007-07-14 13:28 山風小子 閱讀(3090) 評論(2)  編輯  收藏 所屬分類: Groovy & Grails
          主站蜘蛛池模板: 石嘴山市| 容城县| 盐山县| 穆棱市| 嘉善县| 岢岚县| 灌阳县| 文成县| 阆中市| 济宁市| 乐都县| 吴江市| 绩溪县| 化州市| 东乡族自治县| 沁阳市| 仁寿县| 安仁县| 梓潼县| 那坡县| 鄢陵县| 铜陵市| 平定县| 务川| 南川市| 枞阳县| 淳化县| 开封市| 阿鲁科尔沁旗| 辛集市| 云南省| 诸暨市| 喜德县| 观塘区| 犍为县| 泸西县| 奉贤区| 醴陵市| 青海省| 绥德县| 石河子市|