TDDBC(TDD Boot Camp)仙台03に参加してきた

TDD Boot Camp(TDDBC) - TDDBC仙台03/課題
TDD Boot Camp(TDDBC) - TDDBC仙台03/課題用語集
TDDBC 仙台 the 3rd #tddbc のまとめ - Togetter

去年の感想はこちら。→ TDDBC(TDD Boot Camp)仙台02に参加してきた - marsのメモ


またの名を「 [twitter:@i_takehiro] 無双レビュー大会」。今年もTA(Teaching Assistant)枠で参加したんですが、普通に一般参加者としてペアプロしてました。実を言うと受講者枠で参加したのは今回が初めて、TAだったのキレイさっぱり忘れてTDDBCを楽しませて頂きました。


毎度の事ながら主催およびスタッフのみなさん、一般参加された方々、おつかれさまでした&ありがとうございました。

基調講演 in 杜王町

3年続けて同じ事言ってた。


ペアプロのデモ

[twitter:@i_takehiro] と [twitter:@leecom] という鬼軍曹×新兵コンビによる [twitter:@leecom] 公開処刑劇場。leecomお疲れ様ッ!!
個人的には、JavaEclipseのライブデモは定番過ぎるのでは、たまには他の言語やIDEのパターンも見てみたいなと。

ブートキャンプ実施

課題は「整数の区間」。今回TAやってないんでコードレビューんときの発表内容からの推測なんだけど、チーム訳と開発環境はこんな感じだった(去年に続きNetBeansはゼロ!)。

#1 Java Eclipse JUnit4 hamcrest使用
#2 Java Eclipse JUnit4 hamcrest使用
#3 Python PyCham pytest  
#4 Python  
#5 Groovy Eclipse Spock プロダクトコードはJava
#6 Groovy IntelliJ Spock プロダクトコードはGroovy→Kotlin
#7 Objective-C Xcode  
#8 Ruby Sublime Text rspec  
#9 PHP vim phpunit 途中までEC2で開発してたらしい
#10 C# Visual Studio  

去年は6組で半分はJava+Eclipse組だった事を思うと、今年の組み合わせは多彩だなぁと。あとMacBook率が高かった印象ある。この1年でなにがあったんだ?と思うほどの変化で隔世の感がありますなぁ。


ちなみに私は #6 のGroovyペアで参加してました。開発環境どうしようかってペアの方と話をしていたら「実はIntelliJ興味あるんです」とおっしゃっていたので『じゃあ、Community版でいいのでダウンロードしといてください』と。普段からGrailsやSpock使っているようで「正直TA要らないな」というレベルの方でしたので「IntelliJ接待モード」でどっちか言うとIntelliJの使い方をナビゲートしてました。:-)
#こちらはこちらでSpockの使い方教えてもらって大変ありがたかったです。


1回目のコードレビューで一段落した頃に、今度は「ちょっとKotlin使ってみたいんですよ」とおっしゃるので『じゃあ、プラグイン入れますか』と。Kotlinのテスティングフレームワークに心当たりが無かったので、テストコードはSpockのままプロダクトコードをGroovyからKotlinに差し替えてました。


みんなが課題を進める中、なぜかウチのペアは「言語をより良い(?)ものに変える」という大胆なリファクタリングを行っていたわけです。Kotlinの流儀はよくわかってないけど、ちょっとでもKotlinかじってたおかげて挫折すること無く、基本の課題はすべてクリアすることができました。


他のペアでも見かけましたが、ウチのペアは課題開始時点からGithubにプロジェクトを作り、PCを共有してペアを交代するのではなく、ペア交代のたびにcommit & push, pull & mergeをしてコードを共有してました。去年、TAやってたとき、みんなバージョニングしないでどんどん課題を進めていくのがスゴく気になっていただけに、今回半分くらいはGithubを使ってたみたいで、またしても隔世の感をひとり噛みしめたのでありました。


Githubのプロジェクトはこちらです。→ GitHub - masanobuimai/groovy_spock


二人ともIntelliJを使っていたので、ビルドスクリプトなどは作らずIntelliJのプロジェクト管理情報ごと共有してました。実はそこに密かな企みがあって、IntelliJでチーム開発する機会なんて滅多にないので、普通にこの辺を共有するどどんな感じなるのか体験させてもらいました(おかげで良いネタ仕込ませて頂きましたよ。

コードレビュー大会

これが全てを物語っとりますわ。



(追記)これでおわかりいただけだろうか。


\シアーハートアタック!!!/

所感


実際にコード書くとなおさら実感するんだけど、仕事で作るコードはJavaじゃないほうが良くないか?と改めて思った(特にJVM系)。Groovyは柔らか過ぎるけどテストコードだったら別にいいんじゃないかとか(SpockはGroovyと言って良いのか疑問は残るけどw)。Kotlinはマイナー過ぎるやろ、というならScalaだってあるし。


なにより、JavaScalaもKotlinもGroovyもまぜこぜにしたってちゃんと開発できるんだから。
そうIntelliJならね。(・ω<)