在開始Grails之前——送給想要學習Grails的朋友們

基於Groovy開發的Grails框架,繼承了Ruby On Rails的輕快的同時,又可以兼容Java,不但可以節省編程的時間進行快捷開發,又可以有效利用現有系統,一舉多得,可以說是一項非常吸引人的新技術。 
無論Grails還是Groovy語言,雖然有諸多優點,而且已經營多年,遺憾的是一直沒有大規模普及開來。雖然目前並不被大多數開發團隊所接受,但是,我始終堅信,Grails有它火的那一天,以下是本人在學習、開發Grails過程中的自己總結的一些Grails的特點,希望能夠給對Grails感興趣的同仁提供參考,如果能夠拋磚引玉,讓我們共同進步更是榮幸之至。 

在進入正文之前,首先做一下自我介紹。我本人於2006年正式進入一家日本軟件開發公司工作,主要負責基於Java和PHP的WEB系統開發工作。我於去年結識了Groovy,並同時開始了Grails的學習,現在正在利用Grails,跟朋友一起開發 番茄CMS。 

Grails最早使用的名稱是“Groovy on Rails”,後來因爲Ruby on Rails的David Heinemeier Hansson的抗議,改爲現在的名稱“Grails”。從名稱不難看出,Grails其實就是Ruby on Rails的Groovy版。 
Groovy以短小精煉著稱,相對於Java而言,基於Groovy開發的Grails不但可以節省近一半以上的代碼,還可以像Ruby on Rails一樣進行快捷開發。 
雖然無論是Groovy還是Grails本身出發點是讓程序語言開發經簡潔,但是,由於其本身尚處於發展階段,所以個人建議,如果想要學習Grails,最好先具有一定的Java開發經驗。當然,如果你所在的團隊裏面有精通Java的前輩給你支持,就算沒有開發經驗也無所謂,因爲無論是Groovy還是Grails,其本身是非常容易上手的。 
Grails本身是一項極具魅力的框架,具有以下特徵: 

  1. 高效開發
    1. 因爲使用Groovy語言開發,可以減少書寫多餘代碼。
      Groovy語法中取出了Java語法中冗繁的部分,以類似於JavaScrpit腳本語言的風格進行編程,通常情況下,同樣的處理,相比較於Java而言可以少寫一半以上的代碼,減輕程序員的工作強度。
    2. 模仿Ruby on Rails的WEB框架,通過快捷開發,可以縮短開發->公佈週期。
      這一點雖然Java也可以做到,但是,Groovy的語法更容易理解,更容易吸納新人。
    3. 設定配置不需要XML文件,直接使用Groovy更加直觀。
      雖然使用XML進行配置可以把程序語言和配置內容分開,但是,稍微管理不善,XML反而會讓系統變得無比複雜。例如,Struts、Hibernate都是在使用XML方面的反面教材。所以等Java5支持標籤之後,這些框架的很多設定內容又都放到程序裏面了。
      而Grails直接支持使用Groovy文件設定,從無論是程序調用系統設定信息,還是,系統設定文件調用定量都非常簡單、易懂。
    4. 建立開發環境更加愛容易
      無論是命令行還是,Eclipse等IDE上的插件,都可以快速的構建開發環境,這一點是以往Java無法比擬的。
  2. 高度兼容現有Java系統。
    Groovy是在Java腳本引擎上運行的腳本語言,所以,Grails歸根結底就是用Groovy寫的Java。
    無論是現有的Java類庫,還是現有運行的系統,都可以近乎完美的與Grails結合。而且,程序員可以根據需要,直接用Java開發Grails程序。


無論跟以往Java的框架,還是跟Ruby on Rails相比,Grails都有它不可代替的特性,但是,爲什麼Grails沒有像Ruby那樣普及開呢? 我總結了如下Grails的致命弱項: 
  1. 高效開發
    如何提高開發團隊的工作效率,其實只有兩點:一是不返工、二是習慣適應。
    前者是軟件開發管理和設計的範疇,與本文無關。後者習慣適應是指,團隊成員對溝通模式,以及生產流程已經適應,並逐漸讓這些方式成爲習慣。
    Groovy語法簡單,Grails使用方便,雖然這爲開發人員適應其開發模式提供了前提,但是,Grails文檔資料稀少,在真正適應前需要逾越的瓶頸很大。
    其特有的使用方法反而成爲他難以普及的瓶頸之一。
    重要的是,最終取決於開發效率高低的是管理,而非某項技術,所以,跟Grails相比,傳統的Java、Ruby、甚至PHP的風險更低,開發成本自然也低;普及度高,容易找到相應技術人員。
  2. 高度兼容現有Java系統。
    這本身是Grails的長處,但是,Groovy歸根結底還是Java,一旦出現錯誤,還要去看Java。
    雖然Groovy也好,Grails也好,本身都很容易掌握,但是,如果不熟悉Java,很難在商業開發中運用自如。


雖然,依照目前的大環境,將Grails用於商業開發有一定風險,但對這個新生事物我個人還是充滿信心的。 
原因有下:
  1. Grails的開發團隊隸屬於SpringSource,其實力不言而喻
  2. 已經有很多類似於LinkedIn這樣的大型系統在使用Grails,他們可以成功,我們也可以
  3. 我在番茄CMS開發當中,確實體驗到了Grails開發的輕快性,只要把Grails開發相關的知識與大家共享,掌握Grails開發技術的人就會越來越多。


無論任何技術都要有一個成長過程,Grails的最大缺點就是資料太少。我相信,如果每個喜歡Grails的朋友都能無私的把開發經驗分享出來,Grails大規模普及的那一天離我們並不遙遠。 

缺乏開發經驗,但是喜歡Grails也不用着急,Grails在成長,你也可以成長。番茄CMS開發團隊願意儘自己的能力幫助每一個喜歡Grails的同仁,並衷心希望我們可以攜手共同進步。 

原文:http://www.loveapple.cn/app/Grails/first

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章