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

パーフェクトRuby Advent Calendar 2013(16日目)

パーフェクトRuby (PERFECT SERIES 6)

パーフェクトRuby (PERFECT SERIES 6)

 パーフェクトRuby Advent Calendar 2013の16日目です。

 丁度新しい会社に転職して、それまでRubyをまともに触ったことがない人がパーフェクトRubyを元に悪戦苦闘する日常の一部をお見せしたいと思います。

大体の使い方

  1. ガシガシコードを書いていく
  2. 「そういえばあれってどうなんだっけ?」とか「あんまり綺麗に書けないがなんかいい方法ないかな」とパーフェクトRuby (PERFECT SERIES 6)を開く
  3. 「そうだそうだ」と思い出す記述や、「おおっ」と思うようなことが見つかる
  4. 普通に読んでしまい、コードを書くのを忘れる
  5. 我に返って1.に戻る
  6. 無限ループ

という感じです。「あれってどうするんだっけ?」という奥歯に物が挟まってなかなかとれないむず痒い感じをきっちり取り除いてくれる、そんな本だと思います。

 特にメソッドの呼び出し階層やメタプログラミングもきっちり押えてくれているところは、Ruby初心者にはありがたい。社内ライブラリで「どうなってるんだこれ」と思うようなところも、パーフェクトRubyに書かれていることを念頭に置いてもう一度動きを調べてみると、「なるほど!」ということが多々ありますね。

 デファクトなgem類の解説もありがたい。入って間もないある日、ある制限条件に上で、データベースから該当するデータをエクスポートするというスクリプトを作ったんですが、毎度毎度

ruby hogehoge.rb fugafuga

 とするのもかったるいなぁ(主にruby~と書くのが)と思ったのです。用途的にも他の環境に持って行くこと前提だったし、なおかつかなりコードがでかくなっているので複数ファイルに分割したほうが見やすいし、どうせなら使い回しきくようにしたいよね、と。

 ならばgem化ですね!

 とはいえ、この頃はまだgemパッケージを作ったことがなかった私、手元にあったパーフェクトRuby (PERFECT SERIES 6)をパラパラめくっていると13章がそのものずばり。bundlerでこういうことができるのかふむふむと読んで、さくっとgem化。よしこれで使いまわせるぞーと意気込むが、大事な処理のところでバグっていて色々泣きを見るオチでしたが……

感想

 もともとC#で業務アプリケーションを書いていたところからRubyに移ってきたので、書き始めたころはRubyのような割合自由な言語に四苦八苦していたわけですが、パーフェクトRubyをお供にRubyという大海を泳いでみれば、だんだんコードを書くことに脳汁が出てきはじめました。毎日カバンの中に入れて、読んで、コードを書いて、テストしてとリズムが出来てきたのを実感しています。
 他にも技術的なことが好きな人が多いので、話のネタにパーフェクトRubyで社内の人とコミュニケーションがとれたり、色々お世話になっております。

 自分が転職するというところで、タイミング良くパーフェクトRubyを手に入れ読むことが出来たのは、Rubyに馴染むにしても会社に馴染むということにしても非常に良い本に出会えたなと思う次第です。