TAとして手伝いに行ったはずがGroovyの人数が足りなくて急遽 id:yamap_55 さんとペアプロをすることになりました。
当日のリポジトリ
https://github.com/sue445/tddbc_yokohama_20131005
ペアプロの流れ
- gradleのバージョンが古すぎて
gradle idea
できなかったのでダウンロード - 題1にとりかかる
- 途中までやったところで題2で作ったメソッドを元に題1をやった方がいいと判断し題1を後回しに
- 題2が終わって題1に戻る
- 題3をすすめる
- 題3が終わったところで残り10分だったので
ネタでTravis CIと連携させてみることに - 手順は GithubにあるリポジトリをTravis CI連携する手順 #junitbook - くりにっき を参照
- 「Github Travis」でググれば2番目に出てくるw
- githubにpushした後にtravis側でテストが実行されるのに若干時間かかったものの、丁度10分で設定完了
IntelliJ IDEAで日本語テストメソッド名にするとテストが見つからない時の対処法 (Mac Mountain Lion以降)
分かった。sudo vim /etc/launchd.conf でファイル作って、setenv LANG ja_JP.UTF-8 追記して再起動。 最初はここを参考にして→http://t.co/wkF14FBU 最後はここ→http://t.co/MVoOzDWO
— とーます (@grimrose) January 1, 2013
PC再起動も必要とは思わなかったw
今回初めて知ったGroovyの豆知識
任意のクラスからbooleanへの暗黙的なキャスト
static boolean isValid(String version) { try { parse(version) }catch(e) { false } } static JdkVersion parse(String version) {
Groovyだとreturnが省略できるのはもちろんだけど、 parse
の戻り値は JdkVersion
だがisValid
の戻り値がbooleanなので勝手に
return parse(version) != null
みたいなことをやってくれてるらしい
正規表現のキャプチャが楽
static JdkVersion parse(String version) { def m = version =~ /^JDK([0-9]+)u([0-9]+)$/ if(!m) { throw new IllegalArgumentException() } String strFamilyNumber = m[0][1] String strUpdateNumber = m[0][2]
rubyやperlの $1
, $2
にはまだ負けるけど、素のJavaでやるのに比べたらすごい簡単
ちなみに似たようなことをJavaでやろうとするとこうなる https://github.com/sue445/kulib/blob/master/src/main/java/net/sue445/kulib/util/RegexUtil.java
as
jdkVersion.familyNumber = strFamilyNumber as int
familyNumber
は int
で strFamilyNumber
は String
なのですが、Integer.parseInt
しなくていいらしい
懇親会のLT
- RSpec Performance Turning
- 勉強会を始めるまで #java_ja
- Gitlabの通知を受け取るためのChrome Extensionでテストを書いているお話
- 9割方viewなのでGitlabのAPIを叩く辺りを中心にテストを書いてる
- jasmine + phantomjsでテストしてる
- まだ製作中なので今月中には公開したい
まとめ
Groovy素晴らしい
最後に
id:yamap_55 さんのおかげでGroovyについて初めて知ることが多かったです。ありがとうございます!
参考書籍
- 作者: 関谷和愛,上原潤二,須江信洋,中野靖治
- 出版社/メーカー: 技術評論社
- 発売日: 2011/07/06
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 392回
- この商品を含むブログ (154件) を見る