uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

[groovy]StartupGroovy#1 参加報告

本日、うさぎ組きょん(@kyonn_mm)さんによる「StartupGroovy」イベントに参加してきました。公私ともに切羽詰りつつも、あたふたと参加しましたが、ひっじょーうに有意義なイベントでした。

演習主体で、進め方は「テスト駆動ハンズオン」「テストファースト演習」とでも呼ぶべき方式で、これはきょんさん自ら「今日の参加者は実験台です」というものでしたが、私は斬新で効果的な方法だと思いました。

具体的には、マテリアルとして

  • 中身が空のプロダクトコード
  • それをテストする完成品のテストコード

を(IntelliJのプロジェクトとして!)与えられ、プロダクトコード中身の方を埋めていく、というものです。プロダクトコードの内容は、Groovyの各機能を理解できるようなサンプルコードです。たとえば、

    public List 引数のlist1の後ろにlist2を追加する(List list1, List list2){
        return [] //★
    }

というプロダクトコードと

    @Test
    public void test引数のlist1の後ろにlist2を追加する() throws Exception {
       assert listExample.引数のlist1の後ろにlist2を追加する([1,2,3],[7,8,9]) == [1,2,3,7,8,9]
    }

というテストコードを与えられ、★のところを埋めていく、という演習です。このようなメソッドがテーマごと(文字列操作、リスト操作、GDKメソッド)ごとに10数個あって、それを順にこなしていく、というものです。

まあ良くある「穴埋め」形式の演習と言えないこともありませんが、見事にテストファーストのトレーニングにもなってます。そしてプログラミング言語演習を順序良く見通し良く進めて行くための道具立てとして、テストフレームワークとそれに対するIDEのサポートインフラを使わない手はなかったのです。グリーンバーは、演習の達成満足度も高めます。言われてみればその通り。

その他「IDEA/IntelliJ必須」など、最初は無茶じゃないか、と思ったものの、別にアリだなと思いました。こーゆうのはこういう機会で使い初める(初めさせる)と、驚くほど敷居は低くなるものなんですね。まあもちろん、IntelliJを本格的には全く全然使えてませんが、ぼちぼち使っていきたいと思いました。

ちゅーことで、最後に「Startup Groovy #2に参加したいかー」と聞かれ、参加者ほぼ全員が、おー!とか手を挙げていたのは印象的でした。私も(諸般の事情が許せば)是非二回目も参加したいですー。プリンドラ等のスイーツも、とても美味しくいただきました。女性も参加しやすいんじゃないかと思います(G*WSでは夢のレベル?)。

きょんさん、他の参加者のみなさま、場所を提供頂いたオラクル様、本日はありがとうございました。