iT邦幫忙

DAY 1
4

邊看邊學Groovy/Grails/Gradle系列 第 1

Groovy簡介、安裝SDK及基本開發環境

會想要在這三十天試著學Groovy是看了The Well-Grounded Java Developer這本書後,認識了可以在JVM上跑的語言,然後裡面有一張圖引起了我對學groovy的興趣,作者經驗認為如果讓一個Web網站快速成形(要讓一個java的網站跑起來要做的是可不少呢!!web.xml設定, servlet等一堆事情準備工作),則建議採用Dynamic型的語言,如Python、Ruby、Clojure等,那對於學過java的人來說,學習Groovy一則語法相似,學習較容易,二則Groovy在JVM上跑比其他Jython、JRuby或是其他語言performance來的好,三則有一些API可以補java之不足之處,故利用這三十天看看自己可自學到什麼程度吧!
(免責聲明:相關圖片版權皆屬原出版社(Manning))


  1. 2.
    這三十天的分享主要分成三大塊:Groovy的語法介紹、Groovy on Grails及Gradle
    Groovy on Grails其實就是有點在模仿Ruby on Rails的味道,只是名字跟程式語法變了,Grails可以很快地做Web的prototyping(比起硬梆梆的java/servlet),個人感覺光前面兩個主題可能就要三十天了,所以最後Gradle可能只是輕鬆帶過,Gradle基於Groovy類似Maven的build工具,號稱比Maven還好用,有空逛一下Gradle官網,官網的介紹會讓你覺得好像非用它不可。

關於跟大家分享Groovy的語法,我是參考以下這兩本書:
1.Groovy In Action:
2.Groovy For Domain Specific Languages:

Groovy早在2003就已經由James Strachan著手開始這個計畫,在2004年GroovyOne研討會給了keynote說明自己希望java平台也能有Ruby、Python等Dynamic language的特色,故Groovy與java非常相似

  1. Groovy充分利用JDK 7 Invokedynamic,與Groovy的Meta-Object-Protocol(MOP)最佳化,meta-class的觀念之後會提到,不過挺複雜的,我不知道是講得隊或是清楚

  2. Groovy script可以用Groovyc precompile成bytecode後執行,也可以執行groovy xxx.groovy,直接run groovy xxx.groovy其實背後JVM有幫忙做一些事啦

  3. 跟其他在JVM上跑的語言一樣,都可以使用java的library,只是關鍵字跟java一樣都是import,多了一些親切感吧!?

  4. 可擴充原有JDK所提供的Library,在Groovy中稱GDK,因為MOP的機制,所以programmer可以在runtime新增或修改原有之方法,有點在Spring中AOP的fu,到時候再跟大家介紹吧

當然也不太一樣的地方:
1.支援Closure,雖然JDK 8開始就支援了,而且JDK 8 Developer Preview已經可以下載了
2.新增java所沒有的operator,例如要check參數是否為null pointer,可以?.這個operator,如xxx?.yyy,yyy是null pointer,則預設傳回null

  1. 不強制宣告時指定型別(廢話),但是如果要做GORM似乎有規定,因為還沒看到那裏。
  2. 簡化語法,如分號(;)可省略,除非多行程式碼寫在同一行、呼叫方法時括號可省略,如println x //OK、跟POJO相比,GroovyBean大幅簡化語法,如屬性的getter/setter不須額外寫
  3. Groovy XmlParser及產生XML(Markup Builer)更人性化

最後就到<Groovy官網http://groovy.codehaus.org/Download?nc>以及請google GGTS下載GGTS 3.3版(應該是最新版),但是請不要忘記要安裝JDK 7,畢竟Groovy還是在JVM上跑的(JRE不行)

  1. list跟map的宣告跟java不同,如GroovyConsole圖
  2. 字串是單引號,雙引號有其他用途(GString)

Groovy請下載2.15版,因為Spring的Groovy on Grails Tool Suite(GGTS)目前只支援到2.15,安裝玩Groovy就跟python一樣,有現成的IDE(GroovyConsole)可以run script,前半段還不用grails時,用GroovyConsole就已足夠。

今天就先這樣,明天繼續!


下一篇
Groovy基本語法簡介(1)
系列文
邊看邊學Groovy/Grails/Gradle27

1 則留言

0
盧卡斯
iT邦研究生 1 級 ‧ 3 年前

沙發

我要留言

立即登入留言