Ruby忘年会

Rails勉強会の後はRuby忘年会に参加。

一次会

50名参加ということで1テーブルあたり約10人とやや狭かった。自分たちのテーブルは一番奥ということもあってかやや広めだった。

一次会は自分のテーブルはささださんとコーディングスタイルの話で少し盛り上がった。

前にささださんに会ったときはキモいといって否定していたメソッド定義のときの括弧の省略は最近自分も使うようになった。

呼び出しのときの括弧の省略は結構ややこしくて後から変更すると括弧をつけなきゃいけなくなったりして最近はあきらめて最初から書くことも多いのだけど、メソッド定義時であればだいたいのケースで大丈夫なので括弧は省略してしまう。

また、レシーバが省略できるメソッドで引数のない呼び出しの場合()をつけるようにしている。これはローカル変数とメソッドかぱっと見たときに判断がつかないからなのだけど、selfをつけるのが一番見栄えが良いのだけどprivateなメソッドの場合selfをつけることができなくなったので()をつけるということにしている。

 def hoge a, b, c=nil  # 括弧を付けなくても問題なし
    # ...
 end
 
 hoge "foo", "bar"  # pでデバッグするときなどでどうせ括弧を付けなければいけなくなる
 
 def foo
   # ...
 end
 
 foo = "fuga"
 foo()  # レシーバがなくて引数のないメソッドはローカル変数と見分けがつけにくいときがある

それから、ささださんは捨て変数としてよく_を使うのだそうだ。さすがにこれには同感できなかった。

 [1, 2, 3].each {|_| p _ }

二次会

二次会は20名ちょいくらいだったと思う。

高橋さんによればPHPUnitはメソッド名に日本語が使えるのが良いのだそうだ。高橋さん的にはRSpecもshould_beとかではなくて「は」などのメソッドにしてほしいらしい。

$KCODEをUTF-8にすれば日本語が使えるとかなんとかを角谷さんがテストしていたが結果どうなったかは少し覚えていない。リテラルの扱いを変更する際はコードで$KCODEを変更するのではなく、オプションで変更しなきゃいけないというのが少しめんどくさい。

最後の方でid:ogijunさんが駆けつけた。[あとで払う]にみんな爆笑していた。

来年はもうちょっとRubyでライブラリ作ったりアプリ書いたりして参加しないとなぁと思った。