Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
簡単!Groovy入門
2014/06/29
西区プログラム勉強会
李充根
発表の流れ
• きっかけ
• Groovyとは?
• Hello world
• 基本的な文法
• フルスタックフレームワークGrails
2014/6/29 第9回福岡市西区プログラム勉強会 2
きっかけ
• 仕事でWEB開発することがないので趣味でやろう
• スクリプト系の言語を勉強したい
• PythonやRubyを勉強したことあるけどどうもなれない
• 最近関数型とかはやってるけど(Haskell、Scala、…)
– いきなり関...
Groovyとは?
• JVM上で動作する動的言語
• Java的な文法で記述できるスクリプト言語
• Rubyの影響を多大に受けており、その他Smalltalkなども影
響している
• Gradle設定を記述するのに使用する
• 最近Andr...
Groovyの特徴
• Java(っぽい文法)でスクリプトかける
• コンパイル不要(.classにコンパイルすることもできる)
• Javaで不便だった部分を使いやすく
– Java8になり改善された部分も
• 今バージョン2.3
• 今年中...
Hello world
• 何はともあれプログラムの基本「Hello world」
• 動的スクリプト言語なのでクラス宣言なしでも動かすことがで
きる
• もう少し丁寧に書くと
println “Hello world”1
class Hell...
基本的な文法
• 変数宣言
– 動的型付けの場合はObject型として扱われる
• List、Map
int hoge = 1
String fuga = “fugafuga”
def piyo = “piyopiyo”
1
2
3
動的型付け...
基本的な文法
• for、for in
– for文はJavaと同様
– クロージャを使って下記のようにも記述できる
for(i in 1..3){
println i
}
1
2
3
(1..3).each { println it }1
2...
基本的な文法
• クロージャ
– Groovyはクロージャをサポートしてる
– sortなども簡単
def clos = { a, b ->
println “$a + $b = ${a+b}” }
clos(1, 2)
1
2
3
def l...
基本的な文法
• その他
– returnの省略可
• 最後に実行した文が戻り値になる
– 文字列比較が==で可能
– switch文で文字列、Rangeを使用可能
– アクセッサの自動生成
• クラスメソッドにはgetXxx、setXxxでア...
フルスタックフレームワークGrails
• Grails?
– Ruby on Railsを参考にしたGroovy用の
WEBアプリケーションフレームワーク
– RoRと同じように「設定より規約」を重視した作り
– MVCパターンに従って開発で...
Grailsの特徴
• JSPのGrails版GSPを使うことでViewを完結に記述すること
ができ、デザインとコードを分離できる
• 標準で軽量DBも付属しているためテスト環境構築も簡単
• Groovyで開発できるため、Javaとの親和性が...
ちょっとだけGrails入門
• 新規Grailsアプリの作成
• コントローラの作成
– helloControllerというクラスが作成される
• コントローラに記述されたメソッド名と同名のGSPファイルを
作成することでコントローラが呼び...
Grails入門
• 基本的にコマンドで新しいファイルを作成した時点で基本的
な記述がされている
• Model(ドメインクラス)を作成した時点で自動で
CREATE TABLEしてくれる
• サンプル作成
2014/6/29 第9回福岡市西区...
まとめ
• Groovy
– Java的で使いやすい!
– Javaで痒かったところに手が届く(Java8で改善されたもの
もあるけど)
– 日本語資料少ない
– Fukuoka.groovyたちあげたいな
• Grails
– 便利・簡単・速...
ご清聴ありがとうございました
2014/6/29 第9回福岡市西区プログラム勉強会 16
Upcoming SlideShare
Loading in …5
×

簡単!Groovy入門

3,367 views

Published on

第9回福岡市西区プログラム勉強会発表資料

Published in: Technology
  • Be the first to comment

簡単!Groovy入門

  1. 1. 簡単!Groovy入門 2014/06/29 西区プログラム勉強会 李充根
  2. 2. 発表の流れ • きっかけ • Groovyとは? • Hello world • 基本的な文法 • フルスタックフレームワークGrails 2014/6/29 第9回福岡市西区プログラム勉強会 2
  3. 3. きっかけ • 仕事でWEB開発することがないので趣味でやろう • スクリプト系の言語を勉強したい • PythonやRubyを勉強したことあるけどどうもなれない • 最近関数型とかはやってるけど(Haskell、Scala、…) – いきなり関数型のパラダイムに入るのは怖い • JVMで動く言語って面白そう(Scala、Clojure) • せっかくなので今使えるJavaに似た言語 =Groovy 2014/6/29 第9回福岡市西区プログラム勉強会 3
  4. 4. Groovyとは? • JVM上で動作する動的言語 • Java的な文法で記述できるスクリプト言語 • Rubyの影響を多大に受けており、その他Smalltalkなども影 響している • Gradle設定を記述するのに使用する • 最近Androidで動くようになったのでSwiftとの対比で 注目されるかも? • 一言で言うとJavaをスクリプトにした言語 ≠JavaScript 2014/6/29 第9回福岡市西区プログラム勉強会 4
  5. 5. Groovyの特徴 • Java(っぽい文法)でスクリプトかける • コンパイル不要(.classにコンパイルすることもできる) • Javaで不便だった部分を使いやすく – Java8になり改善された部分も • 今バージョン2.3 • 今年中に3.0 betaリリース予定 – Java8対応 – ラムダ式、streamAPI、Date Time API対応 – (クロージャとラムダ式どうなるんだろう) 2014/6/29 第9回福岡市西区プログラム勉強会 5
  6. 6. Hello world • 何はともあれプログラムの基本「Hello world」 • 動的スクリプト言語なのでクラス宣言なしでも動かすことがで きる • もう少し丁寧に書くと println “Hello world”1 class Hello{ static final main(String... args){ println “Hello world” } } 1 2 3 4 5 Groovyはデフォルトでpublic ;は不要(入れてもよい) 2014/6/29 第9回福岡市西区プログラム勉強会 6
  7. 7. 基本的な文法 • 変数宣言 – 動的型付けの場合はObject型として扱われる • List、Map int hoge = 1 String fuga = “fugafuga” def piyo = “piyopiyo” 1 2 3 動的型付け def list1 = [1, 2, 3] def list2 = (1..3) def map = [id:1, name: “ligun”] 1 2 3 2014/6/29 第9回福岡市西区プログラム勉強会 7
  8. 8. 基本的な文法 • for、for in – for文はJavaと同様 – クロージャを使って下記のようにも記述できる for(i in 1..3){ println i } 1 2 3 (1..3).each { println it }1 2014/6/29 第9回福岡市西区プログラム勉強会 8
  9. 9. 基本的な文法 • クロージャ – Groovyはクロージャをサポートしてる – sortなども簡単 def clos = { a, b -> println “$a + $b = ${a+b}” } clos(1, 2) 1 2 3 def list = [[id:1,name:"fukuoka"], [id:2,name:"oita"], [id:3,name:"saga"], [id:4,name:"kumamoto"], [id:5,name:"miyazaki"]] def sortList = list.sort {it.name} println sortList 1 2 3 4 5 6 7 8 { it -> it.name } 1 + 2 = 3 2014/6/29 第9回福岡市西区プログラム勉強会 9
  10. 10. 基本的な文法 • その他 – returnの省略可 • 最後に実行した文が戻り値になる – 文字列比較が==で可能 – switch文で文字列、Rangeを使用可能 – アクセッサの自動生成 • クラスメソッドにはgetXxx、setXxxでアクセス可能 2014/6/29 第9回福岡市西区プログラム勉強会 10
  11. 11. フルスタックフレームワークGrails • Grails? – Ruby on Railsを参考にしたGroovy用の WEBアプリケーションフレームワーク – RoRと同じように「設定より規約」を重視した作り – MVCパターンに従って開発できる – warファアイルにデプロイすることで簡単に サーブレットコンテナで起動することができる 2014/6/29 第9回福岡市西区プログラム勉強会 11
  12. 12. Grailsの特徴 • JSPのGrails版GSPを使うことでViewを完結に記述すること ができ、デザインとコードを分離できる • 標準で軽量DBも付属しているためテスト環境構築も簡単 • Groovyで開発できるため、Javaとの親和性が高く様々なライ ブラリを使用できる • プラグインを導入することで様々な機能を追加できる – ログイン認証など 2014/6/29 第9回福岡市西区プログラム勉強会 12
  13. 13. ちょっとだけGrails入門 • 新規Grailsアプリの作成 • コントローラの作成 – helloControllerというクラスが作成される • コントローラに記述されたメソッド名と同名のGSPファイルを 作成することでコントローラが呼び出された時遷移する • モデルの作成 2014/6/29 第9回福岡市西区プログラム勉強会 13 grails create-app helloapp1 grails create-controller hello1 grails create-domain-class helloapp.Hello1
  14. 14. Grails入門 • 基本的にコマンドで新しいファイルを作成した時点で基本的 な記述がされている • Model(ドメインクラス)を作成した時点で自動で CREATE TABLEしてくれる • サンプル作成 2014/6/29 第9回福岡市西区プログラム勉強会 14
  15. 15. まとめ • Groovy – Java的で使いやすい! – Javaで痒かったところに手が届く(Java8で改善されたもの もあるけど) – 日本語資料少ない – Fukuoka.groovyたちあげたいな • Grails – 便利・簡単・速い – XMLの記述が不要なので楽 – やっぱり日本語資料少ない 2014/6/29 第9回福岡市西区プログラム勉強会 15
  16. 16. ご清聴ありがとうございました 2014/6/29 第9回福岡市西区プログラム勉強会 16

×