Shinya’s Daily Report このページをアンテナに追加 RSSフィード

2012/02/18(土)

[][]StartupGroovyに参加してきた #startupGroovy 16:29 StartupGroovyに参加してきた #startupGroovyを含むブックマーク StartupGroovyに参加してきた #startupGroovyのブックマークコメント

f:id:absj31:20120218160424j:image

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


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

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

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

f:id:absj31:20120218104407j:image

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


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

f:id:absj31:20120219005241j:image

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

f:id:absj31:20120219005653j:image

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



さて、本編に戻ります。


オープニング

f:id:absj31:20120219132516j:image:w700

  • Welcome to Groovy World!
  • Groovyの勉強会は今までにもあった。
  • でも…ハンズオン勉強会がない!
  • ない、ないならやろう。
    • 出来るだけ簡単なところから
    • 聴講・ハンズオン両方ほしい
    • 明確なゴールのあるハンズオンがやりたい
    • 出来ればサポートしてくれる人も
  • Yes! StartupGroovy!

アイスブレイク

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

f:id:absj31:20120220000620j:image:w900

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

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

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

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

環境構築

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

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


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


Groovy概要セッション

f:id:absj31:20120219145342j:image

  • 自己紹介
    • うさみみの人です
    • ターゲット:開発環境改善
    • grovy テスト、自動化 アジャイル、品質保証
    • 24歳うさみみ系男子
  • 特徴
    • コンパイルしてもしなくてもいい
    • JVM上で動作
    • 書き方が完結
      • Javaの1/3
      • Javaと同様に書く事も出来る
    • 動的型付けクラス指向OOP
  • 2nd
    • 型、OOPについて
    • 動的型付けクラス指向OOP
    • 日常的には、数値、文字列、日付など
    • Groovyの型の例
      • 小文字:プリミティブ
      • 大文字:オブジェクト(自分で定義出来るのはこっち)
  • Groovyの簡単な文法について
    • if
    • for
    • return:明示的に書かなくても、最後に書いたものが返る
    • Closureという関数:ある関数Aの中でやってほしい処理、判定などを関数Bとして関数Aに渡せる

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

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


昼休み

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

f:id:absj31:20120218123734j:image f:id:absj31:20120218124003j:image

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

f:id:absj31:20120218131308j:image


課題開始

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

f:id:absj31:20120219143920j:image

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

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

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

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

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

プログラミングGROOVY

プログラミングGROOVY

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

f:id:absj31:20120218164042j:image


スイーツタイム

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

f:id:absj31:20120218160748j:image:w400 f:id:absj31:20120218160757j:image:w400

f:id:absj31:20120218160820j:image:w400 f:id:absj31:20120218161028j:image:w400


Groovyを更に学ぶ方法の紹介

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


ふりかえり

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

f:id:absj31:20120218181330j:image

f:id:absj31:20120218181214j:image:w300 f:id:absj31:20120218181202j:image:w300 f:id:absj31:20120218181147j:image:w300

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

f:id:absj31:20120218183649j:image


懇親会

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

f:id:absj31:20120218185909j:image

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

f:id:absj31:20120218202301j:image


f:id:absj31:20120218210119j:image


f:id:absj31:20120218213145j:image:w400 f:id:absj31:20120218193010j:image:w400

f:id:absj31:20120218212042j:image:w450


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

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

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

プログラミングGROOVY

プログラミングGROOVY

Building and Testing With Gradle

Building and Testing With Gradle



その他関連エントリ:

[][][]IntelliJ IDEA開発環境構築メモ(IntelliJ IDEA/Java/Groovy) 16:29 IntelliJ IDEA開発環境構築メモ(IntelliJ IDEA/Java/Groovy)を含むブックマーク IntelliJ IDEA開発環境構築メモ(IntelliJ IDEA/Java/Groovy)のブックマークコメント

同日(2012/02/18)に開催され参加してきた『StartupGroovy』にて新たに構築し直したので、その際の手順を書き記しておこうと思います。そんなに難しい手順という訳でも無いけどね。:-)

Java実行環境のインストール

Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\>java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode)

C:\>

Groovy実行環境のインストール

インストールするバージョンのインストーラファイルが用意されている場合は、以下の手順をご参照。

バージョン的にzipアーカイブしか無い場合はざっくり以下の手順で実施すれば問題無いと思います。

GROOVY_HOMEC:/Groovy/groovy-1.8.6 (上記設定の場合)
PATH%GROOVY_HOME%bin (既存の変数に追加)
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\>groovy -v
Groovy Version: 1.8.6 JVM: 1.6.0_22 Vendor: Sun Microsystems Inc. OS: Windows 7

C:\>

IntelliJ IDEAインストール

f:id:absj31:20120219141234j:image

  • インストーラファイルを起動。あとはそのまま指示通りにインストールを進めて行けばOK。自分はインストールパスが若干長めに感じたので、この部分だけ『C:\JetBrains\IntelliJ_IDEA_CE_11.0.1』と少し縮めました。

f:id:absj31:20120219141855j:image

f:id:absj31:20120219141911j:image

f:id:absj31:20120219141927j:image

f:id:absj31:20120219141944j:image

f:id:absj31:20120219142001j:image

f:id:absj31:20120219142016j:image

f:id:absj31:20120219142202j:image