Skip to content

Instantly share code, notes, and snippets.

@canujohann
Last active August 29, 2015 14:10
Show Gist options
  • Save canujohann/45cee591315700e1e72b to your computer and use it in GitHub Desktop.
Save canujohann/45cee591315700e1e72b to your computer and use it in GitHub Desktop.
2014-12-03 勉強会

Groovy

Groovy logo

Groovyとは

Java仮想マシン(JVM) 向けの ダイナミック言語 です。

Groovyを使うメリット

  • Python、Ruby、そしてSmalltalkのような言語に触発された強力な追加機能を持っています。
  • ドメイン固有言語(DSL) をサポートし、その他の構文もコンパクトなので、読みやすくメンテナンスしやすい コードになります。
  • ユニットテストとモックの仕組みを備えているので、 テストが単純化 されます。
  • 既存のあらゆるJavaクラスとライブラリが利用可能
  • 直接Javaバイトコードにコンパイルされるため、Javaを利用できる環境ならどこでも利用可能です。

サンプル

変数定義
def name='World'; println "Hello $name!"
オブジェクト指向
class Greet {
  def name
  Greet(who) { name = who[0].toUpperCase() +
                      who[1..-1] }
  def salute() { println "Hello $name!" }
}

g = new Greet('world')  // インスタンス化
g.salute()               // 出力: "Hello World!"
既存のJavaライブラリを活用
import static org.apache.commons.lang.WordUtils.*

class Greeter extends Greet {
  Greeter(who) { name = capitalize(who) }
}

new Greeter('world').salute()

インストール+初期設定

windows環境
  • binaryをダウンロード
  • GROOVY_HOME環境変数を作成
  • GROOVY_HOMEをパスに追加
linux/mac環境
  • GVMをインストール
#GVMインストール
curl -s get.gvmtool.net | bash

具体的に...

java同様にjsp/servlet(groovlet)でウエブサイトを作ることができますが・・実はframeworkもあります!!

Grails (Groovy on Rails)

Grails (グレイルズ)は、プログラミング言語 Groovy を使用するオープンソースのWebアプリケーションフレームワーク。Grails や Groovy はJavaプラットフォーム上で動作する。「設定より規約 (convention over configuration)」というパラダイムにより高い生産性を実現し、スタンドアロンの開発環境を提供しつつ、開発者からはその設定の詳細を隠蔽している。(by wikipedia)

Graddle

Gradleは、進化系のビルド自動化ツールです。Gradleは、ソフトウェアパッケージもちろん、その他様々な形式のプロジェクト(例えば自動生成された静的Webサイトやドキュメント等)のビルド・テスト・(ライブラリ等の)公開・デプロイ・その他を自動化します。(by知らない人)

参考サイト

url
チュートリアル https://grails.org/tutorials
初心者のためのGroovy/Grails入門 http://libro.tuyano.com/index2?id=1291003
eclipse設定 https://grails.org/STS+Integration
Grade入門 http://qiita.com/vvakame/items/83366fbfa47562fafbf4
Grade入門 http://dev.classmethod.jp/server-side/gradle/gradle-first-contact/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment