2012-02-19
#StartupGroovy #1 開催しました
Groovy, StartupGroovy | |
2012/02/18にオラクル青山センターでStartupGroovy #1を主催してきました。
オペレーションサポートをくださった@inda_reさん、@kaori_t_spicaさんをはじめとする方々、
テクニカルサポートをくださった @uehajさん、@nobusueさん、
会場を提供してくださったOracleさん、
経験者として各テーブルでサポートしてくださった方々、
参加者の方々、
ありがとうございました。
皆さんのおかげでなんとか無事に開催出来ました。
こくちーず「2月18日 StartupGroovy(東京都)」
Toggeter「StartupGroovy #1 - Togetter」
座席表職人ブログ「StartupGroovyに参加してきた。 #きょんくんこわい #StartupGroovy - みちしるべ」
定番のまとめブログ「StartupGroovyに参加してきた #startupGroovy - Shinya’s Daily Report」
オープニングセッション、セッションの資料はSlideShareにあげました。
オープニング
演習で使用したプロジェクト、および模範解答はつぎのリンクからDLできます。
演習配布
解答
なぜ開催したのか
オープニングセッションでも言いましたが、ハンズオンでGroovyを基礎から学べる場所がずっと欲しかったのと、周りからの期待があったので、いい機会だと思い開催しました。
最初は8人くらいって思ったのですが、うまく会場を確保できたのもあって30人定員まで申し込んでくださいました。ありがとうございました。
内容
です。
ハンズオン方法
演習ではIntelliJ IDEAで作ったGroovyプロジェクトを配布しました。
プロダクトコードとテストコードが用意されているのですが、プロダクトコードが空実装だったり間違った値を返すようになっています。
「テストがGREENになるようにプロダクトコードを直していく」というのが今回のハンズオンの手法です。
扱う範囲は「文字列」「リスト」「マップ」「真偽値判定」「GDK」で合計40メソッドくらいです。
今回の手法はおそらく珍しい手法だと思っていて、特に名前もつけていません。
@tomy_kairaくんに4clojure が同じようなことをやっていると聞きました。
いい名前ありますかね?w「Test First」とか?
なぜこの形式にしたのか
ハンズオンをやるときに思いついたのが、「チートシート作成」でした。
SCMBCではチートシート作成にしているのですが、これはDVCSの操作をした上でのチートシート作成なのでまだ成立しています。
ですが、言語のチートシート作成となると、そのコードを一度も実行しないままになったり、よく使うものがわからないままにチートシートを作成してしまうことになります。
そこで、なにも知らない人が明確な目標を意識しながら覚えられるもの。というと、今回の形式を思いつきました。
何も設定していないチートシート作成に比較すると達成度も見えますしね。(逆にSCMBCの課題はここかなって思います。
なぜIntelliJ IDEAなのか
Groovyの補完が強力だからです。それ以外にはないです。
改善点と言えなかった副次的な狙い
改善点はレビューや模範解答を出す時間を設けるべきだったことです。1セッション終わる毎にある程度やったほうがいいなって思いました。
ここがなかったが故の言えなかった副次的な狙いというのは、「テストが通ったら三角測量をすること」「コードを調べるときにまずテストコードから見てみることでテストコードを良いリファレンスとしてとらえる事」の2つがありました。
準備がドタバタしていたこともあり、ここは僕がちゃんと計画しなかった事が原因です。すいませんでした。
今後のStartupGroovy
今後どうなるかは全く未定です。
本イベントの需要があるのは(名古屋のG*な人は既にスキルが高いので)東京くらいなのかなって感じています。
東京で定期的に開催できるのが理想だと思いますが、そこは僕が主催でなくとも出来ると思いますし、誰かやってくれないかなって思います。
資料作成や課題作成はお手伝いしますよ。
参加者の皆さんへ
今回ので皆さんを十分にStartupさせられたかは自信がありません。
ですが、ここからぜひ少しずつ深めていってほしいし、Groovyをキッカケに自分のITとの付き合い方が少し変わればいいなって思っています。
プログラミングが好きな方であれば、JGGUGさんが主催するG* WorkShopなどのイベントにも足を運んでもらえたらいいなって思います。
その他
- スイーツ美味しかったですね
- みんなきょんくんこわいとか言い過ぎ
- @kaori_t_spicaのねこみみかわいい
- StartupGroovyで一番勉強になったのは僕だった
- みんなうさみみこわいとか言い過ぎ
- @tomy_kairaくんを毎度毎度すごいと感じます。あとかわいいです。
- @changeworldsさんが意外と大人しかったです
- @orange_cloverさんは既に座席表マスター
- @mike_neckさん、Gradleガンバです
- @shinyaa31さんはもうRedBullがないと生きていけないんだと思いました
- 課題は2週間前から3回くらい作り直しました。自分のGroovyへの理解度がすごく低いとよくわかりました。
- 次回はプログラミングGROOVY発売所をつくりたいレベル
2012-02-12
鼻メガネの会に参加してきた #riskrisk
etc | |
2/11に@riskriskさんと@inda_reさんが飲み会をやるというので参加してきました。
前回も参加してたんですけど、ブログに書くのを忘れてしまいました。今回はちゃんと書きます。
- 本会前のGrailsとか勉強会
- 本会
- 二次会
- 【86世代と前世代について】
- 【人の価値とは】
- 朝まで語る
- 【ValueとUserStoryの違い】
- 【きょんくんの会話についていけない瞬間】
本会前のGrailsとか勉強会
本会は19時から開始だったので、14:30からGrailsとか勉強会という名の何かをやってました。
@riskriskさん、@inda_reさん、@orange_cloverさんの4人でスタート。
カフェで適当にGrailsをやるというものだったのですが、なんだかんだでGrailsあんまり出来ませんでしたorz
途中で、人数が増えたので場所を変えました。 @alterakey さんがいらっしゃって、Androidのテストについて聞きたいということだったので、90分くらいお話しました。
あくまで僕がやっていることで、正しいともいいとも言えないんですけど、何も知らないよりは役にたったと思うし、本人がすごく勉強熱心だったので、話しやすかったです。
ここらへんでなんだかだんだんお疲れモードになりましたw 普段からもっといろいろ集中力保たせるようにしないといけないですね。
本会
半分以上知らない人でビックリしました。今回は僕はあんまり自分で大きく話す事はしなかったかなぁ。技術的な話もあまりしませんでした。
なんか冒頭で@natsu_nananaさんに「今日の卑猥具合」とかって写真撮られました。意味がわかりません。胸元開いてて首に革リボン巻いていたのがツボにはいったのかな。
最初の方はあまり会話したことのない人たちの席に寄っていて話してきました。
@negihiro27さんに「想像と違った」と言われました。
@ryos_さんとやっとお会いすることができました。冗談をナチュラルに混ぜる方で面白かったです。
@sinsoku_listyさんにGitについて質問しました。git-flowを中心としたCIやブランチ戦略について。
@enumさんが実はGroovyにGinAを買うくらいの興味があったと知ってビックリしました。
@shin_semiyaさんとも挨拶できました。なんかたくさんファンクラブはいっているらしいです。
@heroweenさん仕事帰りだったみたいです。おつかれさまです。
@mike_neckさんは会がスタートしてから起きたけど、間に合ってました。冬眠期だから仕方ないですね。
基本的に@kaori_t_spicaちゃんと近くの席に座っていたせいもあって、女性達の席でお話をすることが多かったです。なんの話をしていたのかあんまり覚えていません。@tmmkrさんの今の彼氏との馴れ初めを聞いたりしました。かおりちゃんと喧嘩したことがないんだけど、遠距離だとそんなものかもしれないって思ったり。 #なごやこわい が何かについては説明した記憶があります。
っていうか、女性5人中4人がSCMBC参加者ということに驚きんぐ。
あと、@amameciさん暴走しすぎ。
二次会
二次会の入店待ちのときに@Soltiさんといろいろお話しました。技術的な話もしたのですが僕自身に関するお話だったりとか。ありがとうございます!走りつづけます!
二次会では@riskriskさん、@inda_reさん、@kaori_t_spicaちゃんの4人席に座りました。ずっと@riskriskさんとお話したかったので。
他のメンバーの大半はおおきなテーブルに座る形になっていて、ノリが大学生でついていけませんでした。こわかったです。
【86世代と前世代について】
僕たち86世代っていわゆるデジタルネイティブでしかもそのなかでとてつもないスキルを持っている人達がいる。76世代、71世代からするとたしかに次世代のほうがより優れた環境を手に入れている事は悔しいけど、正常な進化をしている証拠でもあるんですよね。だとしても、自分達がやってきた価値っていうのをもってなきゃいけないし、それをちゃんと言えるようにしないとね。っていう。
なんかオフで誰かと食事なりなんなりしているときにその場にいないのに86世代のスタープログラマは名前があがるらしいです。本当にすごいですね。
【人の価値とは】
最低限をどこにおくかというスライダーはあるんだけど、本質的な意味だと、自分で考えたものが何かっていうのが大切だと思っています。例えば、リファレンスをもっていることが重要なんじゃなくって、リファレンスから何を自分で考えたりするかが大切。リファレンスだけだと惜しいなって僕は思う事が多いです。価値がないって言っているんじゃなくって。
なんかアンケートとか回ってきたのでそれの話をしていたりとか。
個人的には@changeworldsさんより@amameciさんのほうがこわいです。飲み会のノリ的な意味で。
すごい人に@shinyaa31さんが選ばれていましたね。レポート職人の地位を作り上げた事は本当にすごいと思います。ビルド職人的な。
途中で@natsu_nananaさんがいらっしゃってSCMBCの話をしたりとかしていました。ガンダムでジェネレーションギャップとか。
それ以外はあんまり覚えていないです。ごめんなさい。何話していたのか覚えていたらコメントとかリプライくださるとうれしいです。
朝まで語る
この日は@inda_reさんの自宅に@yujiorama、@riskriskさんふくめ3人でお邪魔して朝まで話していました。
書ける範囲だと、
【ValueとUserStoryの違い】
これはアジャイルサムライ読書会でも僕がいったなんとなくのイメージなんですけど
- 要求分析から導きだした顧客の達成したい内容がValue
- それを達成するために設計したシステムから導きだせるものがUserStory
- 要求、Value、UserStoryが矛盾していない事をちゃんと考えるの大切
っていう大きな流れがあるんですけど、まぁそれは時々によると思ってます。
結果として両者の違いはValueは比較的コンテキストに依存していなくって、UserStoryはコンテキストに依存しているって感じ。両者に共通するコンテキストがシステムになるのかなってイメージです。
【きょんくんの会話についていけない瞬間】
僕と話しているとビックリしたり、呆気にとられてついていけなくなる瞬間があるらしいです。
会話していてなにか想像していなかった点を挙げられたり、根本を覆すようなことになるという話。
僕はどうやって普段会話しているのか考え直してみました。
僕は完全じゃないにしろ、2つのことをなんとなくやっています。
- 前提、目的、理由、5W2Hを明確にしていきたい
- トピックのロジック、なんらかのマトリクス、依存性を想像する
前者は前職で上司から学んだ事。
後者はソフトウェアテストを勉強するようになってから少しずつ自然にやるようになってきた事。
会話しているときはそれぞれの要素やノードや依存関係を追加したり、マスやツリーをうめていく作業です。そこで不整合が起きそうなポイントやボトルネックになりそうなポイントを見つけると相手に質問をなげかけます。
で、@inda_re@riskrisk曰く、そのポイントを見つけるのが彼らからするとすごく早いそうです。なので、会話していて呆気にとられたり、ビックリしたりすることがあるとのこと。
なるほどなーって思いました。僕がテストエンジニアや名古屋のエンジニアと話していても同じような印象をうけるのですが、彼らにも独自のメソッドがあるのかもしれませんね。聞いてみたいです。
まとめ
楽しかったです。すごく不真面目な人間なのですが、こんな僕の話を聞きたいと言ってくれる人がいたり、みなさんと話していると楽しくなりますし、勉強になります。
次回参加できるかわかりませんが、機会があえばよろしくおねがいします。

また早速解答と答え合わせさせて頂きました…が、
BooleanExample.groovy 多分upにミスってます。(戻り値が全てfalse w)
お手数ですが、お時間があった際に再upお願いいたします。
それではまた何かでお会いするときは宜しくお願い致します。
再upしました。確認おねがいします><
今確認しました。ありがとうございました!