読者です 読者をやめる 読者になる 読者になる

第4回 Yokohama.rbに行ってきた

Ruby

第4回?第5回?。初回は0回だから今回は5回目かな。今回のyokohama.rbは@jugyoさんの発表。

特に決まったテーマでお話されるということではなく、いくつかのテーマを挙げて、その場で話を組み立てていくというスタイル。あとの新年会でも話しに上がったけど、このスタイルはとってもスキルが必要とされる。それをうま〜くこなされていた@jugyoさん、すげぇ。

Rubyすげぇ話。

各自思い思いのことを出して、その例を@jugyoさんがコーディングされるスタイルで軽くお話。irbとかブロックとか、演算子の定義とか、オープンクラスとか。ちょっぴりC++を触った経験から言うと、C++では結構苦労して実装したような思いがあることが、Rubyだとお手軽にできるってイメージ。

また、Module#attr_accessorでJavaでいうsetter/getterを書かなくていいということもすごいところ(Ruby FAQにも書かれていた。http://www.ruby-lang.org/ja/man/html/FAQ_A5E1A5BDA5C3A5C9.html)。しかもそれが言語に取り込まれているものではなく、Moduleで実装されているというところがすごいところ。

Moduleによる実装の共有が話題になったんだけど、正直良く分からなかった^^;。「初めてのRuby」の8.5章に詳細が記されているからあとで復習しようっと。

gemの作成ツール

gemの作成ツールについて。jeweler(https://github.com/technicalpickles/jeweler)が簡単でおすすめとのこと。gemの作成ツールではhoe(http://seattlerb.rubyforge.org/hoe/)が有名なんだけど、hoeはhoeで大変だよねぇという声も上がる。

おすすめツール

主に@jugyoさんが作成されたツールのご紹介。

デバッグにについて。上のgとかir_bとかはお手軽なんだけど、ちゃんとデバッグしたい時にはruby-debugを使われるとのこと。「どっかにいい記事があったので、それを見てください」っていわれたんだけど、見つからない・・・orz。

TDDとBDD。

RSpecとかTestUnitとか。RSpecるびまの記事(http://jp.rubyist.net/magazine/?0021-Rspec)を参考にするといいかと。TestUnit を使ってテストを書く時はshoulda(https://github.com/thoughtbot/shoulda)を併用すると便利になるとのこと。

解説記事を探していたら「RSpecよりShoulda、fixturesよりヘルパーとMocha」という記事を見つけた(http://d.hatena.ne.jp/irohiroki/20071024/shoulda)。

RVM

RVM(http://rvm.beginrescueend.com/)とはRubyのバージョンマネージメントシステム。複数のバージョンを切り替えて使うことができる。日本語の記事がここ(http://gihyo.jp/dev/serial/01/ruby/0039)にあるので、それを参考に。UNIX処理系では、ファイルの先頭にRubyのパスを/usr/bin/rubyって書くことが多いんだけど、/usr/bin/env rubyと書いたほうが動的に切り替えられてよい。

WindowsではRVM使えないので、代わりにpik(https://github.com/vertiginous/pik)を使うと幸せになれるとのこと。

まとめ

@elranaがtogetterで関連ツイートをまとめてくれました(http://togetter.com/li/89660)。