狠狠撸
Submit Search
开発现场て?使えるかもしれない骋谤辞辞惫测
?
1 like
?
2,242 views
Z
zgmf_mbfp03
Follow
开発现场て?使えるかもしれない骋谤辞辞惫测
Read less
Read more
1 of 42
More Related Content
开発现场て?使えるかもしれない骋谤辞辞惫测
1.
?開発現場で使えるかもしれない? Groovyの入門 Java Doでしょう#04 2月13日
2.
自己紹介 ? @zgmf_mbfp03 ? フォローは非推奨 ?
サバゲー, 酒大好き
3.
はじめに ? Groovyに触れてまだ4ヶ月たってないです ? まだ入門中です ?
温かい目で見守ってください Groovyわかないお
4.
アジェンダ ? Groovyとは ? 環境構築 ?
入門 ? 利用用途 ? まとめ
5.
Groovyとはなんぞや ? Java VMで動いちゃう動的型付け言語 ?
J2SE1.4以上で動作 ? Javaとの高い親和性が! ? JavaのAPIやライブラリを簡単に使用可能 ? Rubyに強い影響を受けているから似た文法が多いらしい ? 私はRubyを知らない???
6.
JDKについて ? 要求はこんな感じ 参考: http://www.groovy-lang.org/download.html Indy(InvokeDynamic)はJVMに追加された新しいバイトコードと、その処理の仕組みを総称する呼び方らしい??? 私は全く理解していない!
7.
Groovyの環境構築 ? Macでの設定 (Windowsは…
知らないから調べてね!) ? ターミナルを立ち上げ ? $brew install groovy ? これだけ ? 確認 ? $ groovy –version ? $Groovy Version: 2.4.5 JVM: 1.8.x Vendor: Oracle Corporation OS: Mac OS X
8.
Groovy-Eclipse ? EclipseでGroovyを扱う ? groovy-all-x.x.x.jar追加
9.
Javaとの差 ? セミコロンを省略 ? return
を省略 ? throws宣言を省略 ? 例外処理 ? 形宣言を省略 ? プリミティブ型はラッパー型 ? リテラルが異なる ? アクセス修飾子 ? メソッド呼び出し ? 演算子のオーバーロード ? クロージャ ? Etc…
10.
HelloWorld ? JavaでHello World!
11.
HelloWorld ? JavaでHello World! ?
これをGroovy化! ? 拡張子を *.java から *.groovy に ? セミコロンを省略 ? System.out.println が println に ? カッコを省略 ? スクリプト形式に
12.
HelloWorld
13.
セミコロンを省略 ? セミコロンを省略
14.
return を省略 ? return
を省略 ? 最後の評価された値が返却される
15.
例外処理 ? 例外処理 ? throwsを省略 ?
catchのクラスを省略 ? Exception扱い
16.
形宣言を省略 ? 形宣言を省略 ? defは、JavaでいうObject型 ?
形无しは、迟丑颈蝉が示すオブジェクトの笔谤辞辫别谤迟测
17.
プリミティブ型はラッパー型 ? プリミティブ型はラッパー型 ? ラッパー型になるが
苍耻濒濒の代入は実行时にエラー
18.
リテラルが異なる1 ? リテラルが異なる ? 浮動小数の計算が正確 ?
${…} を書くと GString扱い ? GStringは${…}の中に 書かれたものに置換
19.
リテラルが異なる2 ? リテラルが異なる ? []を書くだけでList扱い ?
+ や - で要素の追加、削除が可能 ? 演算時のオーバーロード ? 他のコレクションにする場合は as で強制変換 ? Mapは連想配列風とプロパティ風 の扱い方が有る
20.
アクセス修飾子 ? アクセス修飾子 ? Private?
そんなものは無視 ? アクセス可能 ? 無印はPublic扱い ? パッケージプライベートはないわけではない
21.
メソッド呼び出し1 ? メソッド呼び出し ? メソッド名はStringまたはGStringで書ける ?
引数は初期化できる
22.
メソッド呼び出し2 ? メソッド呼び出し ? コンストラクタはデフォルトだけでいい ?
アクセサメソッドはいらない ? 裏でsetter, getter をいい感じに呼んでいるらしい
23.
演算子のオーバーロード ? 演算子のオーバーロード ? 演算子は、それに対応するメソッドが存在している
24.
クロージャ ? クロージャ
25.
クロージャ ? クロージャ(Groovy) 参照 http://www.groovy-lang.org/closures.html 英語読めないお(??ω?`)
26.
クロージャ ? クロージャ(Groovy) ? 第一級関数であり、メソッドとは区別される ?
引数を取り、値を返し、内部で宣言された変数を参照し、使う ことができるコードの集まり ? コードブロックやメソッドポインタのようなもの 入門なんだから
27.
クロージャ実装 ? 定義と実行
28.
匿名クラス ? Java ? Groovy
29.
コレクション操作 ? Java8 -
StreamAPI forEach, sorted, map ? Groovy - Closure each, sort, collect
30.
Groovy からStreamAPI ? StreamAPIを使うことも可能 ?
ラムダ式ではなくクロージャになる
31.
JavaからGroovyクラスの利用 ? JavaからGroovyのクラスを問題なく利用できる ? クラスの利用 ?
スクリプトの実行
32.
JavaからGroovyの実行 GroovyShell ? GroovyShellクラス ? 簡単なGroovyの実行に便利 ?
Binding バインド変数の設定 ? GroovyShell#evaluate ? 戻り値がスクリプトの結果
33.
JavaからGroovyの実行 GroovyScriptEngine ? GroovyScriptEngineクラス ? ディレクトリ指定でGroovyスクリプトを実行 ?
GroovyScriptEngine#run ? 戻り値がスクリプトの結果
34.
Groovyの利用 ? ビルド ? Gradle ?
テスト ? Spock ? Geb ? メインの言語 ? Grails ? Spring ? Android ? その他 ? XMLパース ? HTML, XMLの出力 ? HTMLスクレイピング ? RDBMSの操作 ? Excelの操作
35.
まとめ ? Groovyは, Javaとの親和性が高い動的型付け言語 ?
スクリプトとして実行が可能 ? Javaよりも適当に書ける ? JavaからGroovyを呼び出せる ? Groovyを使ったツールやライブラリも有る
36.
番外編 – Spockの紹介
?
37.
Groovy製のテストツール Spock ? テストフレームワーク ?
Groovy製でJUnit上に構築されたもの ? PowerAssertで細かいエラー情報を出力 ? BDD的なテストコード記述 ? 標準でMockAPI使用可能 ? データドリブンテストの記述が可能
38.
PowerAssert ? JUnit ? Spock
39.
Spockでの記述方法 ? テストクラスはGroovyクラス ? テストクラスは
Specification を継承する ? メソッドには @Unroll を付ける(データドリブンテスト) ? ブロックに分けて記述
40.
ブロックについて
41.
Mockの使用方法 ? Setup(Given)ブロックに記述 ? Mockでモックの定義 ?
>>で振る舞い定義 ? クラス名.metaClass.setAttribute(インスタンス, フィールド 名, 新しい値)でフィールド変更
42.
Spockまとめ ? JUnitより結果がわかりやすい ? BDD的な記述により、処理がわかりやすい ?
标準で惭辞肠办础笔滨があり、楽????