StartupGroovyに参加してきた #startupGroovy


(写真:Groovy関連書籍を携え、Groovyプログラミングに興じていた時の作業環境。)


Groovyに関しては勉強会に参加し始めた時から興味は持ち続け、関連する勉強会等にはちょくちょく参加してはいるのですが、それが即Groovyでの開発やプログラミングの実践に繋がっていたか、となると必ずしもそうではなかった…というのが私のGroovyに関する進捗状況でした。

そんな時にこの『StartupGroovy』という勉強会の告知があり、文字通りGroovyプログラミングを『スタート、始動』させるためにはうってつけの機会だなと思い、迷わず参戦申込Doneしておきました。

会場はオラクル青山センター@外苑前。4月に大規模イベントが控えているので、入り口に至る階段もメークアップしとりました。

このタイミングで、当日会場を使わせて頂いた日本オラクル甲木さん(TwitterID:@yokatsuki)からお知らせがあった2点について、こちらのブログ出も言及しておきたいと思います。


JavaOne Tokyo 2012:2012/04/04(水)〜2012/04/05(木)開催!(at 六本木アカデミーヒルズ)


Oracle OpenWorld Tokyo 2012:2012/04/04(水)〜2012/04/06(金)開催!(at 六本木アカデミーヒルズ)


こちらのイベントで驚いたのは、何と小泉純一郎内閣総理大臣スペシャルビジネスセッションで登場!しかし残念ながら当エントリ投稿時点では既に満席となっている模様です。



さて、本編に戻ります。

オープニング

  • Welcome to Groovy World!
  • Groovyの勉強会は今までにもあった。
    • G*ワークショップ
    • JGGUG Camp
    • もくもくGorooy
    • Grailsドキュメント翻訳会
  • でも…ハンズオン勉強会がない!
  • ない、ないならやろう。
    • 出来るだけ簡単なところから
    • 聴講・ハンズオン両方ほしい
    • 明確なゴールのあるハンズオンがやりたい
    • 出来ればサポートしてくれる人も
  • Yes! StartupGroovy!

アイスブレイク

今回は参加者のうち、『コーチ・経験者』と『初心者』をテーブル毎に配置する席構成となっておりました。座席状況に関してはorangeclover (TwitterID:@orange_clover)さんの『座席表』資料を御覧下さい。(※画像内赤枠で囲んだところの席が『コーチ・経験者』席になりました。人数の都合もあり必ずしも座った人=『コーチ・経験者』では無かったですが。:-) )

この時間帯では、以下のテーマで自己紹介含め、アイスブレイクトークを実施。

  • プログラミング・デザイン?・マネージ?
  • StartupGroovyをどこで知りましたか?
  • 勉強会って行きますか?

主催者の以下のコメントでこのコーナーも〆。

  • 今日はstartupです。
  • ここからどんどん楽しんで。
  • かっこいいG*Workshopなどへの参加につながるといいな。
  • Enjoy Groovy Life!

環境構築

ここから、15〜20分程の時間を設けての環境構築(まだ作成していない人のために)タイム。自分も以前入れてたのですが、今回用に改めて作成し直すことに。

主催者側からは以下のようなドキュメント及びスライド資料が用意されておりました。


また、今回自分の方でもインストールの過程でスクリーンショットも取ってしまい、エントリにしちゃいました。宜しければご利用下さい。

Groovy概要セッション


  • 自己紹介
    • うさみみの人です
    • ターゲット:開発環境改善
    • grovy テスト、自動化 アジャイル、品質保証
    • 24歳うさみみ系男子

  • Javaって何だ?
    • 続きはWebで。
    • コンパイルが必要
    • JVM上で動く
    • Web,Android、デスクトップで使われる
    • 書き方が冗長(メリットもデメリットもある)
    • 静的型付けクラス
    • GroovyはJVM上で動作する言語
    • Groovyの実行環境
    • GroovyはJavaのライブラリのようなもの
  • 特徴
    • コンパイルしてもしなくてもいい
    • JVM上で動作
    • 書き方が完結
      • Javaの1/3
      • Javaと同様に書く事も出来る
    • 動的型付けクラス指向OOP
  • 2nd
    • 型、OOPについて
    • 動的型付けクラス指向OOP
    • 日常的には、数値、文字列、日付など
    • Groovyの型の例
      • 小文字:プリミティブ
      • 大文字:オブジェクト(自分で定義出来るのはこっち)
  • Groovyで型を定義する(デモ)
    • class, interface
  • Groovy Coding
  • Groovyの簡単な文法について
    • if
    • for
    • return:明示的に書かなくても、最後に書いたものが返る
    • Closureという関数:ある関数Aの中でやってほしい処理、判定などを関数Bとして関数Aに渡せる

この後このセッションに関する幾つかの質疑応答。主に最後で言及していたクロージャ周りの内容が多かったです。G*な方々も今回は参加しておられてまして、補足説明的につぶやいていただいているので併せてご紹介。

自分もクロージャ周りはあまりピンとこないまま今回臨んでいたので、この点に関しては少し補足説明(クロージャを使うメリット、Groovyとクロージャの関連等)が深くなると理解も深まるのかな〜とは思いました。

昼休み

ラクル青山センターではおなじみのお弁当セットですね。冷めてても美味しいお弁当です。(※そいえば、ここって電子レンジとかあるのかな?可能なら温めて食べたいものだけど...)

そしてしばしの休憩タイム。

課題開始

環境構築で『Hello World』出力が終わったところで、今回の課題コードを含んだプロジェクトをインポートし、準備を整える事に。以下からzipアーカイブを入手し、プロジェクトとしてIDEAに取り込み。

基本的には以下の流れでハンズオンは進んでいきました。

  • 用意されているものはテストコードとプロダクトコードの2種
  • テストコードには要求する仕様のコードが記載されている
  • プロダクトコードには、それらの枠及びテストがコケる実装がなされている(モノによっては通ってるものもあったけど。 :-))
  • Groovyの関連本、Web等を調べつつ、それらのテストを満たすプロダクトコードを実装
  • 通ったら次の課題(テストコード)へ…


内容(課題のテストコード)的には非常にシンプルかつ理解もし易いもので、これまでにGroovyを何らかの形で実践・経験してきたレベルの人にとっては正直物足りないものに映っていたのではないでしょうか。

ただ、今回は『StartupGroovy=初心者層にターゲットを当てた勉強会』。自分も実装経験としてはここに当てはまると思っていたので、このレベルでの取り組み易さは非常に良かったのでは、と思います。レベルが平易な事でGroovy初心者でもある程度の達成感を得られる事が出来ていたように思えますし、自分も課題(全40問)をほぼすべて(残り2つまで)終える事が出来てました。

分からない部分は書籍を見ながら、Webで調べながら。(今回の課題的には書籍『プログラミングGroovy』を元にした箇所が多く、当書籍が非常に役に立ちました。そしてこの書籍の内容の濃さ・素晴らしさに一同感動。)

プログラミングGROOVY

プログラミングGROOVY

進み具合によってはグループ内の他のメンバーと雑談しながら教えあったり、コーチの人に聞いてみたり。休憩のアナウンスがあっても中々休憩せず技術論議に花が咲くなど、相変わらずのハンズオンにありがちな光景が各所で観られておりました。

スイーツタイム

おやつタイムに用意されたスイーツは今回も豪華。ぷりんどら超美味しかったです♪ (^q^)

Groovyを更に学ぶ方法の紹介

随所で放たれるDisの数々。やはり『#うさみみこわい』『#きょんくんこわい』は真実であった…!

ふりかえり

勉強会恒例のふりかえりタイムを以て本編終了。

懇親会開催までの間にも、ふりかえり結果を囲んで技術談義がなされておりました。良いですね〜こういうのは。

懇親会

本編会場でそのまま懇親会へ突入。

そして恒例の闇LT。テーマとしてはGroovyの勉強会なのに徐々にそこから離れていってましたね(笑)これも闇の醍醐味。






そんなこんなで懇親会も終了。芸術的な現状復帰作業の後、撤収となりました。

Groovyプログラミングについては、今回のイベントでスタートアップのきっかけはつかめた感があるので、書籍を用いての写経等は気持ち的にも大分進め易く、走り易くなったのではないかな〜と思います。

StartUpしはじめてから着手しやすそうなのは以下の辺りからか。日々少しずつでも触れておいてGroovy/G*力を向上させねば!(`・ω・´)クワッ

プログラミングGROOVY

プログラミングGROOVY

Groovyイン・アクション

Groovyイン・アクション

Building and Testing with Gradle: Understanding Next-Generation Builds

Building and Testing with Gradle: Understanding Next-Generation Builds

その他関連エントリ: