第17回 G*ワークショップに参加してきた #jggug
この日の前日に2chで出された『東京駅で17:30に大量殺人します』予告がどれほど影響あったのかは定かでは無いですが(自分は最寄り駅が東京駅だったので少なからず心配してました。結局何事も無く普通に東京駅から山手線で品川へ向かいました)、予定通り開始時間前に到着。
会場はNTTソフトウェア品川本社。Jenkins勉強会やこれまでのGroovy関連のイベントで良く使われている場所ですね。
では早速参戦メモ。
関連Togetter:
1.4.0.M1 !? 2.0.0.M1 -更新メモ-
セッション講演者の都合により、こちらのセッションからの開催となりました。
@tyamaさんはGrailsのリリース直後にブログで翻訳版を書いておられるそうで、今日がそのリリース日でもあり(写真はちょうど数時間後になされるであろうリリースのビルド実行背景。Jenkinsでは無くHudsonである事に多くのツッコミが入っていました(笑)
- Grails 2.0.0.M1の話
- View more presentations from Tsuyoshi Yamamoto
Grails2.0更新内容詳細
コア+その他の更新
- Groovy 1.8:超強化されたGrovyをバンドル。
- Spring3.1:SpringプロファイルとGrails環境のブリッジ
- Servlet3.0:Asyncとか個人的に注目
- Tomcat7.0
- hibernate
- 賛否両論ありますが・・・。
- 開発モードで1.3.7より10倍以上遅くなっている?
- プロダクションモードなら問題ないっぽい?
- エラーレポートとスタックトレース表示
- 前はさみしい状態
- 今回からは賑やかに。
- 見やすくなった。
- Grailsソースの構成改良
- ソースツリーお掃除!
- Gradle使ってる人は参考になると思う。オススメ!
リソース
- ドキュメント追記されていると思うが、使い方がわかりにくかったので・・・
- 簡易resourcesプラグイン講座
- スライド参照。
DB,GORM
- 基本dbをh2へ変更
- DBコンソールの改良
- 複数データソースサポート
GORM API 大幅改良・機能強化
- GORMでの抽象クラス継承のサポート
- (※詳しくは話が長くなるので割愛。)
- OrCreate/OrSaveクエリーの実装追加
- 名前付きクエリ
- 名前付きクエリがドメインクラスのリレーションを含んでいる場合、
- そのリレーション先の名前付きクエリを使用する事が可能に。
- 共有制約とコマンドオブジェクト
テスト
その他
- アクションがメソッドに
- アクションのメソッドに引数を指定
- アクションメソッドに引数を指定してバインド。
- 指定した型に変換されます。
- Servlet3.0 Async
- 非同期処理。AsyncContext
- BuildConfigにサーブレットバージョン指定
- 使用方法:def ctx = startAsync()
- 非同期処理。AsyncContext
-
- フィルターの除外定義
- data-mappingの名前が変更された
- さらにその他
- 依存ライブラリ・プラグインにSNAPSHOTがある場合の自動更新
- JSonBUilderは非推奨、等。
- フィルターの除外定義
- (QAタイムへ突入・・・)
QAタイムに入ってからの時間内で、突如書籍『プログラミングGroovy』等書籍のプレゼントコーナーが開催され、最終的には『Groovyじゃんけん』というルールでプレゼント対象者を決めていました。Groovyじゃんけんは、声をだして行うじゃんけんなので少し恥ずかしいです(笑)
うさみみとJenkinsとG*な開発環境
当初は19:00からの一発目セッションの予定だったのですが、都合により合流が遅れたためセッション順序を入れ替えて実施。こちらの順番/時間にギリギリ間に合う形で始まりました。
※エントリ冒頭でも述べた『東京駅17:30大量殺人予告』の件ですが、実は予告を書いた人のハンドルネームがまさかの『KYON』。
名前見たときに『ちょっw まさか…』とも(ほんの)一瞬思いましたが、当然の事ながら違いまして(笑)本人にその旨聞いてみた所『知らなかった。自分ならもっと(うさみみに)ちなんだ平和的な事をやる』と言ってました(笑)
前回LTで初お目見えとなった『うさみみ』ですが、今回のセッションでもそれは健在。セッション開始と同時に『うさみみモード』へ。
- 7/20に行われたAgileConferenceTokyoにて、ファウラー氏の発した『花金』という単語に反応出来てなかった…
G*の導入
- Groovyをやりたい理由
- Groobyをやれない理由
- 新しい言語は学習コストがかかる
- 安定しているのか不安
開発環境概要
- TestCode 4 Groovy
-
- TDDの障害:パッケージプライベート
- とりあえずパッケージプライベート・・・本当は良くない。
- Groovyのprivateアクセスのテストコードは毎回捨てている。すぐさま消す前提で。
- TDDの障害:パッケージプライベート
- ProductCode 4 Groovy
- Gantをいじってみた…どうしてもAntにやれる事に引きずられてしまう
- ふも(TwitterID:@fumokmm)さん『これからはGradleですよ』
- Gradle
- Java
- Groovy
- FindBugs(antタスク)
- CheckStyle(CodeQuality)
- Emma
- Gradle
- ふも(TwitterID:@fumokmm)さん『これからはGradleですよ』
- Gradle Test
- 対象テストをパラメータで渡してそれぞれ実行。
- テストパッケージをtdd,unittest,systemtestと分けておき、
- タスクを分割する事でjenkinsで並行処理をしやすくする
- ※jenkinsでどうなのか、並列処理出来るのか、という所には気を遣う。
- Gradle Analyze
- テストとコンパイル以外の設定は全て別のGradleスクリプトにする。
- findbugs.gradle, checkstyle.gradle
- 外だしにする事でプロダクトに依存している部分を分けて書ける
- ビルドツールだって読みやすくなる
- ローカルリポジトリ:開発機
- プライベート:サーバー
- セントラル:サーバー
- 手順
- 使用したプラグイン
- win32mbcs
- eol(コミットする度に改行コードを修正)
- bookmarks, mq(個人的に)
- GITのタグに似てるような/歴史改変
- Mercurialを何故使ったか
- Jenkins Plugin
- Gradleのビルドをパラメータを変えながら多数のジョブを実行
- 簡単なUI!
- 実行するだけなら簡単。
…という感じで、実際の環境についての説明・解説が成されていきました。ツール・環境選定の基準はとても明確であり、且つ説明も非常に分かり易い。『ゆとり』の一言で笑いに変えてはいましたが、『わかりやすい』『早い』という点を最優先にした判断・構築ノウハウは素晴らしいものがあるなぁと思いました。また、Gradleの簡単さにも驚き。これは使ってみたいな〜と思わせるだけの可能性は秘めてます。
Q&A
質疑応答では、技術環境的なものよりもまず最初にこの質問が投げ掛けられました。
これに対しての本人の答え。
- Twitterイラストアイコンを書いてもらってた
ようやく明かされた、きょんさんの『うさみみ』の謎、という感じでしょうか(笑)
その他、メモ取れた内容としてはYukei Wachi(TwitterID:@digitalsoul0124)さんから以下の2質問が。
- TDDフォルダとUnittestフォルダを分ける基準は?(わちさん)
- TDDで作ったテストコードを元に、Unittestコードを作成。
- そのためにフォルダを分ける
- きょんさんのTDDはやりやすさ重視。
お知らせ
勉強会終了前に2つのお知らせが。とその前に…書籍『プログラミングGroovy』の表紙中央にあるこのマーク(写真参照)、実は…
正体はこうなっていたのだそうです。Javaと親和性の高いGroovyらしいトリビアでした。
お知らせは以下2点。
#1:『プログラミングgroovy』オリジナルポロシャツ制作決定!
#2:JGGUG合宿2011、開催の方向へ(ほぼ決定)
日付はほぼ確定で、希望によれば前日の11/4からの参加も可能だそうです。興味のある方は以下のGroupに参加を。
今週は
- 2011/07/26(火) 7月26日 第24回すくすくスクラム 〜ファシリテーション入門だ!〜(東京都)
- 2011/07/27(水) アジャイルサムライ読書会(湯島道場) 第一回 地の巻 #agilesamurai : ATND
と2日連続参戦、そして週末に
- 2011/07/29(金) 7月29日 第17回 G*ワークショップ(東京都)
- 2011/07/30(土) 7月30日 SCM Boot Camp in Tokyo(1次応募)(東京都)
- 2011/07/31(日) TDD Boot Camp 東京 1.6 #tddbc on Zusaar
と3連戦…1週間に5個の勉強会に参加するというちょっと無謀なスケジュールを立ててしまいました。(^_^;)
しかもラスト2つは全日対象のBoot Camp。今日で3/5が終了しましたが、大きな山場、BootCamp2連戦で体力が持つかどうか心配です…。
こんな酔狂な事する奴もそうは居ないだろう…と思ったら、全く同じスケジュールで臨む方が他に3人も。
- きょん@うさみみモード(TwitterID:@kyon_mm) さん
- なかやん・そるじゃー・ゆーき (TwitterID:@pocketberserker) さん
- いろふ(TwitterID:@irof) さん
@pocketberserkerさん、@irofさんとは今回初めての御挨拶&顔合わせとなり、同じ3連戦に臨む者同士でエールを送り合いました(笑)
さて、明日はAM10:00からの開始。早めに寝て備えることにしたいと思います。