第21回 G*ワークショップ に参加してきた #jggug

金環日食があった5/21(月)にSunを食ったOracleに行った。
第21回 G*ワークショップ #jggugに参加するためにだ。

オレンジの人です。



70人と、普段の倍以上の参加申し込み。
Griffon、Gradle、Grailsと豪華なラインナップ。
@yusukeyの本格的なUst と@shinyaa31 の動画録画の2本立て
Togetterも @shinyaa31 、 @kimukou2628 の2本立てw
@shinyaa31 のレポートはもうメディアの領域だし。


Griffonでのテスト戦略 by @kyon_mm

  • (多相Variantの紹介)を表示して
    • 第一回関数型言語勉強会 大阪でやった全国の @irof の資料・・・
  • G*ワークショップはうさみみのホーム
    • うさみみつけたのG*ワークショップのLTが初めてだったんだ
  • Griffon=幻獣=うさみみ
  • Griffon知ってる人:多数
  • チュートリアルを動かした人=1割程度
  • Griffon=デスクトップアプリケーション
  • デスクトップアプリ全盛期
    • Twitterクライアント使ってるよね?
      • デスクトップアプリ全盛期ですキリッ
  • Grailsライクなアーキテクチャ
    • Grailsを知らない方 ノ
      • 1人 (@megascus )が嘘ついてるw
    • Groovy on Railsという名前だったがRuby on RailsからクレームでGrailsになった
    • 設定よりも規約
    • 規約から外れたときだけ設定
    • XML書いていいのは小学生まで
    • GrailsRailsと同じ考え方
    • コマンドライン便利
      • 作成:griffon create-app usamimi
      • 起動:griffon run-app usamimi
    • Andr●idの話は、今日はしちゃだめでしたね・・・
    • 今は、IDEでも簡単にできるけど、CIで回すときにCUIで操作できることが大事
  • MVCレイヤー
    • MVCを知らない人 ノ
      • はい嘘つき (@megascus )
    • MVCでのバインドが簡易 @Bindableのアノテーションつけるだけ
    • Griffon のmodel != domain model
    • GriffonのModel=データの容れ物
  • SwingBuilder
    • SwingBuilder=Groovyの機能=Groovyの内部DSL
    • SwingBuilderをより書きやすくしたのがGriffon
    • GroovyTest=JUnit3のGroovy拡張
    • CUIでコマンドを割り振ることができるex Contllerのテストだけ
    • みんな大好きSpock、Spockが嫌いと言ったらこの会場からでて行って欲しい
    • function-list の資料 http://t.co/UntkmMTf
  • 作りたいアプリ:さっきの資料のGrailsのアプリを、Griffonに置き換える
    • Griffonとかどうでもよくて、テスト戦略を覚えて帰って欲しい
  • テスト戦
    • 略聞いたことない人、今日のタイトルで聞いたことあるのか
    • テスト計画ちゃんとやってる人 ノ おっとおっと・・・
    • The Outline of Test Process の資料 http://t.co/86vXflB6
    • 大中小項目で分けることの悪いこと
      • 大中小の基準がないこと
      • 最初は小だったものが、後で大になったりする
    • 機能分割
    • 資料が見つかりませんw
      • 機能分割の方法は8つある http://t.co/bsbCrWgT
      • 変換
      • 関数
      • 刺激
      • 状態
      • 規則
      • 目的・手段
      • 手続き(シナリオ)
      • 階層
  • テストにおける要求分析 http://t.co/aiVx3emj
    • ISO 9126品質特性
      • 機能性
      • 信頼性
      • 使用性
      • 効率性
      • 保守性
      • 移植性
    • 機能性の例、画面の前後動作で正常に動作する
      • 使用性の例、キャッシュをみたい
    • 機能と機能性のテスト項目は別
    • テストの抜け漏れをなくすのがテスト戦略
    • テストの重複をまとめて、無駄をなくすのもテスト戦略
    • 名古屋には、テストなんてしなくても証明しなくてもよいというな人がいる


    • JUnit4の@categoryは面倒、そこでGriffonですよ

よやくGriffonに戻った。

    • Griffonなら、単体テストフェーズで機能性テストができる
    • テストアプローチごとにメトリクスを収集できる一発で実行できる
    • だから無駄なガントチャートとかいらない
  • Griffonのテスト実行環境すばらしい





次世代ビルドツールGradle最新情報アップデート by @nobusue



  • JavaOneの時の発表とほぼ同じ
  • JavaOneと違うことが1つ、私の環境がMacなった
  • Javaのビルドプロセスは複雑
  • Java EEは・・・
  • CIとかワンクリップデプロイとかわがままな人がでてくるわけです
  • ビルドツールの進化 Make→Ant→Maven→Gradle
  • Make
    • メリット:スクリプトなので自由にできた
    • デメリット:ポータブルではなかった
  • Ant
    • メリット:Javaなのでポータブル、
    • デメリット:数千行で、Javaのヒープオプションを付けないと動かない、作った人でないとメンテできない
  • Maven
    • メリット:パターン、モデル、概念をテンプレートとして用意してある
    • 数千行のAntとの格闘から解放された
    • デメリット:MavenのPluginとの格闘が始まった
    • pom.xmlを作るのが大変
    • JSPカスタムタグをより難しくした感じ
  • Gradle
    • Makeのもっていたスクリプトの自由さ、Mavenの持ってた規約にそったテンプレートの良さを併せ持つ
    • Maven規約によるビルド、Antのようにプロジェクトの事情に合わせた柔軟なビルド、Makeのようなスクリプトの自由さを取り戻したビルドツール
    • 依存関係は、Maven セントラルも自前のサーバーもローカルも使うことができる
    • Mavenと同様の規約に従って、プロダクトコード(src)とテストコード(test)を配置
  • Gradle DSL
    • これが Groovyスクリプトに見えた人は・・・・いないですよね
    • (見えるぞ。私には見えるってうさみみが言ってたけど。)
apply plugin:'java'

repositories {
    mavenCentral()
}

dependencies {
    compile(
        group: 'commons-collections', 
        name: 'commons-collections', 
        version: '3.2'
    )
    testCompile(
        group: 'junit',
        name, 'junit',
        version: '4.+'
    )
}
task "OsDependTask" << {
    def os = System.getProperty("os.name")
    if(os.contains("Windows")) {
        println "Windows用の処理" 
    } else if(os.contains("Mac OS")) {
        println "MacOS用の処理"
    }else { 
        println "Linux/Unix用の処理" 
    }
}
    • 動的タスク定義も簡単
4.times { counter ->
    task "task${counter}" << {
        println "${counter+1"}番目の動的タスクです"
    }
    • デフォルトでは、build.gradleを見に行く
  • AntからGradleへ
    • Antの資産(build.xml)をそのまま読み込んで実行可能、AntタスクをGradleから直接利用可能(GroovyのAntBuilderのおかげ)
    • AntタスクとGradleタスクの共存も可能
    • なので、段階的移行もでき
    • Antを使ってる人は今すぐ、Gradleに置き換えた方がいい
  • 話題のJenkinsとの統合
    • Gradle wrapper、JDKさえあれば、Gradleを自動でインストールして実行してくれる
    • Jenkins上でも動く
    • ものぐさな人にも、チェックアウトしてこのコマンドを叩いてくれと言えば、Gradleを使う人になってしまう
  • 営業向けに
    • Eclipseとかに使えないので
    • JSPServletのビルドするのをGradleで書いた
    • Gradle wrapperも書いてあるので、そのまま叩くだけで実行できる
    • Gradleで、jettyをダウンロードして、jettyを起動してwarをデプロイする
    • Eclipseを知らない営業でもServletを実行する環境ができてしまいました
  • Jenkinsはフリースタイルビルドツールで入れてもらえればOK
  • Spockイチオシ
    • JUnit互換のレポートを吐くので、Jnkinsでも読める
  • 持論、粗探しされる頃から一人前
  • disられるネタ
    • プラグインがまだまだ少ない
    • 日本語情報が少ない
    • (Mavenのような)プロジェク自動生成機能がない
  • オライリーのGradleの本は翻訳しないのか?と聞いたら、薄い本はちょっとね・・・
    • Gradleの分厚い本期待
みなさん宿題覚えてますか?Gradle実行するんですよ? はい、実行しました。

Grailsを活用したBD-J(Blu-ray Disc Java)アプリケーション制作支援ツール by 竹内 武

  • jggug初参戦で、Grailsの業務事例の発表
  • 某歌姫π のBlu-ray
  • mp3のような低レートではなく、パッケージではないとできないような高レートの音源をレーベルA社さんと協業
  • 楽曲だけではなく、インタラクティブな操作性を実現
  • BGM付きのフォトブック
  • BD-J(Blue-ray Disc Java) どんな安いプレーヤーにもJavaが入っている
  • 関連標準仕様CDC
  • Javaが入ったことで、出会いん、画面パーツ製作、BD-J実装がネック
    • BDアプリケーションビルダーというGrailsのWebアプリケーションで作成できるようにした
  • 新しいもの好きなので、
    • Grails2.0.3
    • Groovy 2.0.0
    • Tomcat 7.0
  • QなぜPlay frameworkにいかなかったか? A.知り合いにGrailsをススメられたので
  • 今日のG*ワークショップは以上なのですが
Blue-rayのプレーヤーにJVMが入ってるのは全く知らなかった。 手持ちのBDの中身覗いてみようと思ったけど、PCにBDドライブなかった・・・

レッツゴーデベロッパー 告知 @bikisuke

  • 2012/06/09 レッツゴーデベロッパ
  • ぐぐって3番目 (3番目!?)
  • 継続的デリバリーセッション
  • JGGUG3大猫アイコンそろいぶみ
  • 2012/06/09 レッツゴーデベロッパhttp://t.co/2XSn6BdU
  • 個人サポーター申込5/24まで http://t.co/2XSn6BdU
  • 月1回ぐらいやりたい気持ちはあるのですが・・・また参加してください

スイーツ

@kazuchikaファミリーからの差し入れ
あと、うなぎパイもあった。名古屋組からの差し入れ? 登壇者の方、濃い発表ありがとうございました。 運営の方お疲れ様でした。

JGGUG関連

関連ブログ

疑問が残ってる人、懇親会で聞きそびれた人はブログに書くといいと思う。 登壇者や知ってる人がが反応してくれるはずだから。

動画

座席表

編集 どの辺に座ってたか覚えてる人はアイコンを移動してください。 こくちーずでの最終登録者です。 とぉ〜
関谷 和愛、上原 潤二、、須江 信洋、中野 靖治
価格: ¥ 3,360
価格は記載時点のものです。購入前にAmazonでご確認ください。
山田 正樹、山本 剛、上原 潤二、永井 昌子、杉山 清美、杉浦 孝博、笠原 史郎、香月 孝太、福岡 竜一、伊堂寺 北斗
価格: ¥ 3,780
価格は記載時点のものです。購入前にAmazonでご確認ください。
Jeff Brown、Graeme Rocher 価格: ¥ 4,163
価格は記載時点のものです。購入前にAmazonでご確認ください。
Hans Dockter、Tim Berglund、Matthew Mccullough
価格: ¥ 2,107
価格は記載時点のものです。購入前にAmazonでご確認ください。
Burt Beckwith
$35.99
Early Release Ebook
価格は記載時点のものです。購入前にoreillyでご確認ください。
池田 暁、鈴木 三紀夫
価格: ¥ 2,499
価格は記載時点のものです。購入前にAmazonでご確認ください。